如何让 bootbox 接受多行代码?

How do I allow bootbox to accept multiple lines of code?

此代码有效:

<script type="text/javascript">
bootbox.alert("Hello world!");
</script>

此代码无效:

<script type="text/javascript">
bootbox.alert("Hello 
world!");
</script>

如果你要问为什么我像第二个那样需要它,那是因为该值将基于具有多行代码的 textarea,我不知何故需要制作 bootbox 运行多行代码。

第二个可以是第一行 Hello 和第二行 world! 的文本区域的产物。

使用简单的正则表达式将换行符 \n 转换为 <br>

伪代码:

 textAreaObjectText.replace(/\n/g, "<br />");

这里需要 g 标志来更改所有出现的地方。我们正在使用 String.prototype.replace 将编辑后的文本从文本区域发送到警报功能。

工作示例:

document.querySelector("button").addEventListener("click", function(){
    bootbox.alert(document.querySelector("textArea").value.replace(/\n/g, "<br />"));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>
<script src="https://github.com/makeusabrew/bootbox/releases/download/v4.4.0/bootbox.min.js"></script>
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" rel="stylesheet">
<textarea>
Hello
World
We're testing
this
alert
</textarea>
<button>open alert</button>
     

和你有同样的问题。我就是这样解决的

#php code
$comment = json_encode($comment);

#js code
var comment = <?= $comment ?>;

$('#clickSomething').click(function(e){
e.preventDefault();
bootbox.dialog({
    title: '<span class="text-success">Bootbox Title</span>',
    message: '<div class="form-group"> ' +
             '<label class="control-label" for="project-description">Comment</label> ' +
            '<textarea id="comment" class="form-control" maxlength="1024" rows="8" placeholder="Optional Comment">' + comment + '</textarea> ' +
            '</div>',

只需将您的消息与

bootbox.alert({ 

    title: "Guardado",
    message: ` Something
    <br>
    else
    `, 
    callback: function(){ window.location.href = 'lista/mensaje'; 
    }
});