jQuery 验证 : call a function after form validate

标签 jquery validation jquery-form-validator

我正在尝试调用一个函数来保存我的表单。

这是我的代码:

$('#save-form-datas').validate({
    rules: {
        ROO_Number: {
            required: true,
            minlength: 1,
            maxlength: 4
        }
    },
    submitHandler: function(form) {
        var formData = new FormData(form);
        saveFormDatas(form);
    }
});

但是当代码执行时它不起作用。

这是我想在 for 验证后立即执行的函数的代码:

function saveFormDatas(form) {

    $.ajax({
        type : 'POST',
        data : form.serialize(),
        url  : 'assets/app/php/ajax/rooms_edit.php',
        success: function(responseText){
            var json = $.parseJSON(responseText);
            if(json.type=="success") {
                $('#status-message-saved.hide').removeClass('hide');

                if(json.return_url!="") { 
                    setTimeout(function(){ window.location.href = "app?q=" + json.return_url; }, 1000);
                }
            }
            if(json.type=="error") {
                $('#status-message-error.hide').removeClass('hide');
            }
        }
    });
}

但它不起作用,只需打开一个新页面,就像这样我已经使用 $_GET 传递了表单(我的所有表单数据都在网址中)。

我需要这样做,因为我有超过 100 个表单,并且无法复制我的代码来保存表单。

最佳答案

只需从验证器中删除submitHandler并添加外部函数即可。

$('#save-form-datas').validate({
 rules: {
    ROO_Number: {
        required: true,
        minlength: 1,
        maxlength: 4
    }
 }
});

按如下方式处理表单提交。

$('#save-form-datas').submit(function(event){
    event.preventDefault();
    if($('#save-form-datas').valid()){
        var form = $('#save-form-datas')[0];
        var formData = new FormData(form);
        saveFormDatas(form);
    }
});

或者您可以添加“return false”,如下所示...(这将阻止默认表单提交)

$('#save-form-datas').validate({
 rules: {
    ROO_Number: {
        required: true,
        minlength: 1,
        maxlength: 4
    }
 },
 submitHandler: function(form) {
    var formData = new FormData(form);
    saveFormDatas(form);
    return false;
 }
});

关于jQuery 验证 : call a function after form validate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44274436/

相关文章:

javascript - 如何制作像 AllTop.com 上那样的 javascript 弹出窗口

jquery - 如何验证 Bootstrap Form Helpers DatePicker 为必填还是非空?

javascript - 如何使用jquery仅当当前div有效时才激活下一个div?

javascript - 弹出窗口未显示在 Angular 模板中

javascript - 如何检测光标是否静止不动?

javascript - 单击时弹出重复的窗口

javascript - 验证不允许我的表单提交

ruby-on-rails - Rails validates_format_of with Regex 在换行的情况下失败

javascript - 仅在模糊或松散焦点时验证输入