为什么新行无法在此javascript警报窗口中运行?

Rad*_*ire 9 javascript ajax jquery alert

我看到警报窗口和新行有很多不同的问题.大多数是\n在PHP中被认为是新行,而不是被发送到javascript.

在我的例子中,字符串正在显示的新窗口中输出\n.我只是尝试\n通过jsfiddle 写入一个警告框,这很有用,所以它一定是我做事的方法......

这是返回控制台的字符串.如你所见,\n肯定存在:

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

但是,它显示如下:

使用\n而不是新行的警报

为什么会这样?我认为这可能与数据类型有关,因为它是从中返回的$.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();
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

Bil*_*oon 19

如果您的控制台日志显示\n而不是新行,则表示\在原始字符串中转义...

相比

console.log(1,"\\n\\n");
console.log(2,"\n\n");
Run Code Online (Sandbox Code Playgroud)

用于.replace()交换\n换行符

console.log(3,"\\n\\n".replace(/\\n/g,"\n"))
Run Code Online (Sandbox Code Playgroud)