首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么此javascript警告窗口中的新行不起作用?

为什么此javascript警告窗口中的新行不起作用?
EN

Stack Overflow用户
提问于 2012-01-23 13:57:03
回答 5查看 24.3K关注 0票数 9

我在警告窗口和新行中看到了很多不同的问题。大多数人认为\n在PHP中被认为是一个新行,而不是被发送到javascript。

在我的例子中,字符串在一个显示\n的新窗口中输出。我刚刚尝试通过jsfiddle将\n写到一个警告框中,并且成功了,所以这一定是我的做事方法……

这是返回给控制台的字符串。如您所见,\n肯定在那里:

Username is required\nPassword is required\nEmail is required\nPhone is required\nCardnumber is required

但是,它是这样显示的:

为什么会发生这种情况?我认为这可能与数据类型有关,因为它是从$.ajax返回的

代码语言:javascript
复制
if (canAjax && !try_ajax) { 
    e.preventDefault();
    $.ajax({
        type: "POST", 
        url: "mobilesubmit.php",
        data: {"use_ajax": true, "formdata": $("#register_form").first().serializeArray()},
        success: function(data) {

            // This stupid thing should make new lines!
            alert(data);

            console.log(data);
        },
        error: function (request, status, error) {
            try_ajax = true;
            $("#register_form").submit();
        }
    });
}
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-01-23 14:10:48

如果您的控制台日志显示的是\n而不是新行,那么这意味着在原始字符串中对\进行了转义...

比较

代码语言:javascript
复制
console.log(1,"\\n\\n");
console.log(2,"\n\n");

解决方案

使用.replace()\n换成换行符

代码语言:javascript
复制
console.log(3,"\\n\\n".replace(/\\n/g,"\n"))
票数 19
EN

Stack Overflow用户

发布于 2012-01-23 14:14:14

最可能的原因是您的PHP代码通过在前面添加另一个反斜杠来对反斜杠进行转义。当它到达JS代码时,它实际上是

代码语言:javascript
复制
"Username is required\\nPassword is required..."

您可以在调试器的网络面板中检查原始响应。如果您尝试在控制台中查看它,它将显示格式化的输出,而不是原始输出。

在PHP代码中仔细检查您的JSON序列化方法,并确保它正在对\n执行您所期望的操作。

票数 4
EN

Stack Overflow用户

发布于 2012-01-23 14:00:27

尝试在\n .It应起作用后添加空格

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8967722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档