我在警告窗口和新行中看到了很多不同的问题。大多数人认为\n在PHP中被认为是一个新行,而不是被发送到javascript。
在我的例子中,字符串在一个显示\n的新窗口中输出。我刚刚尝试通过jsfiddle将\n写到一个警告框中,并且成功了,所以这一定是我的做事方法……
这是返回给控制台的字符串。如您所见,\n肯定在那里:
Username is required\nPassword is required\nEmail is required\nPhone is required\nCardnumber is required
但是,它是这样显示的:

为什么会发生这种情况?我认为这可能与数据类型有关,因为它是从$.ajax返回的
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();
}
});
}发布于 2012-01-23 14:10:48
如果您的控制台日志显示的是\n而不是新行,那么这意味着在原始字符串中对\进行了转义...
比较
console.log(1,"\\n\\n");
console.log(2,"\n\n");解决方案
使用.replace()将\n换成换行符
console.log(3,"\\n\\n".replace(/\\n/g,"\n"))发布于 2012-01-23 14:14:14
最可能的原因是您的PHP代码通过在前面添加另一个反斜杠来对反斜杠进行转义。当它到达JS代码时,它实际上是
"Username is required\\nPassword is required..."您可以在调试器的网络面板中检查原始响应。如果您尝试在控制台中查看它,它将显示格式化的输出,而不是原始输出。
在PHP代码中仔细检查您的JSON序列化方法,并确保它正在对\n执行您所期望的操作。
发布于 2012-01-23 14:00:27
尝试在\n .It应起作用后添加空格
https://stackoverflow.com/questions/8967722
复制相似问题