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,var2和var3作为参数添加到我的页面,因此可以说我的网站网址是http://localhost/home/index,它将重定向http://localhost/home/index?var1=xxx&var2=xxx&var3=xxx
我不明白为什么会这样?

最终版本:

// function call, to pass message to telegram bot
function populateAndSend() {
    var _url = "..." + var1 + var2 + var3

    return $.ajax({
        type: 'get',
        url: _url
    })
};
// form validation
$('#tryitForm').validate({
    rules: {
        xxx
    },
    submitHandler: function (form) {
        populateAndSend();
        return false;
    }
});

解决方法:

您无需在提交处理程序中调用form.submit(),表单提交是使用$.ajax()完成的.改成:

$('#tryitForm').validate({
    rules: {
        ...
    },
    submitHandler: function () {
        populateAndSend();
        return false;
    }
});

返回false;提交处理程序中的告诉验证插件不要进行常规表单提交.

相关文章

IE6是一个非常老旧的网页浏览器,虽然现在很少人再使用它,但...
PHP中的count()函数是用来计算数组或容器中元素的个数。这个...
使用 AJAX(Asynchronous JavaScript and XML)技术可以在不...
Ajax(Asynchronous JavaScript and XML)是一种用于改进网页...
本文将介绍如何通过AJAX下载Excel文件流。通过AJAX,我们可以...
Ajax是一种用于客户端和服务器之间的异步通信技术。通过Ajax...