Javascript 引导框警报未在$.post(url、数据).done()代码中弹出

Javascript 引导框警报未在$.post(url、数据).done()代码中弹出,javascript,jquery,jsp,bootbox,Javascript,Jquery,Jsp,Bootbox,我有以下代码从jsp页面提交表单 调用mywebpage.jsp返回一个SOAP响应,其中包含警报中使用的所有参数 我知道代码执行正确,因为我可以看到console.log()。bootbox.alerts不会弹出。 我已尝试在bootbox.alerts和bootbox.confirm上使用callback()。我仍然得到同样的结果 $('form.myForm').submit(function (event) { var url = "mywebpage.jsp";

我有以下代码从jsp页面提交表单

调用
mywebpage.jsp
返回一个SOAP响应,其中包含警报中使用的所有参数

我知道代码执行正确,因为我可以看到
console.log()。
bootbox.alerts
不会弹出。 我已尝试在
bootbox.alerts
bootbox.confirm
上使用
callback()。我仍然得到同样的结果

    $('form.myForm').submit(function (event) {
        var url = "mywebpage.jsp";
        var data = { param1: "value1", param2: "value2", param3: "value3"};
        $.post(url, data)
        .done(function(data) {
            console.log(data);
            var IErrCode = $(data).find("IErrCode").text();
            if (IErrCode==0)
            {
                console.log("Validate Sign IErrCode==0");
                bootbox.alert('Saved.<br>' + $(data).find("SOutMsg").text());
            } else {
                console.log("Validate Sign IErrCode!=0");
                bootbox.alert($(data).find("SErrDesc").text() + $(data).find("IErrCode").text());
            }
        })
        .fail(function(jqXHR, textStatus, errorThrown) {
            console.log(errorThrown +"(" + textStatus + ")");
            bootbox.alert( errorThrown +"(" + textStatus + ")");
        });
        return true;
    });
我知道这是一种不好的做法,但这是我让它发挥作用的唯一途径。 我现在可以看到
引导框。警报
,但它们关闭得太快,无法读取。我已尝试将它们更改为
Bootbox。确认了
,但它们仍然关闭得太快


我想知道有没有其他方法可以强制它们保持打开状态,直到用户接受它们?

是否添加了所有必需的库?您的浏览器控制台是否显示任何错误?@Swati我确信我有所有必需的库。弹出窗口可以在其他页面上工作。我收到了有关
[违规]避免使用document.write()的警告。
[违规]解析器因document.write()而被阻止,但没有错误。这已在文档和一些相关问题中介绍过-您需要取消表单提交(
事件.preventDefault()
)或者在脚本末尾使用
return false
。Bootbox只生成引导模式,它只是定位div,它们不会像本机对话框那样阻止您的代码。@TiesonT。我已尝试添加
事件.preventDefault()
返回false
。当我这样做时,我从SOAP服务中得到以下错误:插入时出错(DLVR的证明)-ORA-00984:此处不允许列
,这听起来与客户端代码无关(或者至少与引导盒的使用无关)。该错误意味着SQL语句中存在错误。不过,对于初学者来说,假设表单在正常发布时工作,您可能应该使用它来创建数据对象:
var data=$(this.serialize()
,其中
$(this)
是选择
$('form.myForm')
的对象。如果变量已经存在,则可能还希望调用响应对象而不是
数据
$.ajax({
    type: 'POST',
    url: url,
    data: data,
    async:false
})