jQuery在表单submitHandler和奇怪的重定向上等待ajax调用

时间:2017-02-17 21:47:22

标签: javascript jquery ajax

function populateAndSend() {
    var _url = "..." + var1 + var2 + var3
    $.ajax({
        type: 'get',
        url: _url
    })
};

$('#tryitForm').validate({
    rules: {
        ...
    },
    submitHandler: function (form) {
        $.when(populateAndSend()).then(form.submit()); <<< does not work
    }
});

2个问题,when().then()似乎无法正常工作,当form.submit()被解雇时,它会将我重定向回我的网页,但会添加var1,{{1 }}和var2作为我的网页的参数,所以我可以说我的网址网址是http://localhost/home/index它会将我重定向到http://localhost/home/index?var1=xxx&var2=xxx&var3=xxx吗? 我不明白为什么会这样?

最终版本:

var3

1 个答案:

答案 0 :(得分:3)

您不需要在提交处理程序中调用form.submit(),表单提交正在使用$.ajax()完成。改为:

$('#tryitForm').validate({
    rules: {
        ...
    },
    submitHandler: function () {
        populateAndSend();
        return false;
    }
});
提交处理程序中的

return false;告诉验证插件不要进行正常的表单提交。