微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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;提交处理程序中的告诉验证插件不要进行常规表单提交.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐