正确使用jQuery验证插件的submitHandler方法

sor*_*ist 3 javascript ajax jquery jquery-validate

首先来自jQuery验证插件的一些文档:

"使用submitHandler处理某些内容然后使用默认提交.请注意,"form"指的是DOM元素,这样就不会再次触发验证."

submitHandler: function(form) {
    $.ajax({
        type: 'POST',
        url: form.action,
        data: 'current_password=' + form.current_password + '&new_password=' + form.new_password,
        success: function(){
            alert("succes");
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

所以,我的巧妙代码自然不起作用.我正试图从表单对象访问'action'属性和两个输入字段,没有运气.我该怎么做?

Nic*_*ver 8

试试这个:

submitHandler: function(form) {
    $.ajax({
        type: 'POST',
        url: $(form).attr('action'),
        data: { current_password : form.current_password.value,
                new_password: form.new_password.value }
        success: function(){
            alert("succes");
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

目前,不是提交元素的值,而是在字面上调用toString,所以只需添加.value即可获取值.此外,我们在data这里作为一个对象传递,因此它被编码,否则,如果密码中有一个密码&,则该帖子将不正确.

  • @ soren.qvist - 哦不,这样做很好,你只是不想做`$(form).submit()`具体,因为那最终再次调用`submitHandler` :) (2认同)