输入=提交正在确认对话框之前提交

时间:2019-03-07 22:13:46

标签: javascript forms

HTML:

<input type="submit" class="general-btn" value="Submit" name="decision" id="trigger">

第一次JS调用:

$("#trigger").submit(function (e) {
    userSubmit(e);
});

然后我跟随thisjQuery Deferred and Dialog box拨弄小玩意

function userSubmit(e){
var question = "Do you want to start a war?";
    confirmation(question).then(function (answer) {
        console.log(answer);
        var ansbool = (String(answer) == "true");
        if(ansbool){
            alert("this is obviously " + ansbool);//TRUE
        } else {
            alert("and then there is " + ansbool);//FALSE
        }
    });
}

但是在答复确认之前表格已经提交。

2 个答案:

答案 0 :(得分:0)

确认是异步的,因此提交处理程序不会阻塞并立即返回,从而导致提交。

您可以使用e.preventDefault()停止提交,然后使用submit功能手动触发提交。但是,您需要保留一个标志来检查您是否已确认,因此您无需取消并再次询问,或者可以在确认提交后删除提交处理程序。

答案 1 :(得分:-2)

我通常不使用您使用的代码,而是使用窗体,如控制台所言,使用onclick属性代替“ HTMLInputElement.onclick”。

<input type="submit" onclick="myFunction()" />