使用提交处理程序进行 jQuery 验证

标签 jquery jquery-validate

我使用 jQuery 验证插件的 validate 方法设置表单验证,并且有一个修改输入元素值的提交处理程序(我使用 YUI 编辑器,它需要调用 saveHTML() 来将 iframe 的内容复制到 textarea 元素。 )。提交表单时,我希望验证器在执行提交处理程序后验证表单。但如果在验证调用后注册,它不会执行我的提交处理程序。

例如,

<form id="form1" action="/test">
    <input type="text" name="txt1" id="txt1" />
    <input type="submit" value="submit" />

$(document).ready(function() {
    $("#form1").submit(function() {
        $("#txt1").val("123456");
    });

    $("#form1").validate({
        rules: {
            txt1: {
                maxlength: 5
            }
        }
    });
});

表单在我的提交处理程序之后进行验证,因此提交被取消。

$(document).ready(function() {
    $("#form1").validate({
        rules: {
            txt1: {
                maxlength: 5
            }
        }
    });

    $("#form1").submit(function() {
        $("#txt1").val("123456");
    });
});

但是,如果我更改顺序,则表单会在提交处理程序之前进行验证。

最佳答案

您可以使用 beforeSubmit 回调来设置值:

$(function() {
    $('#form1').validate({
        rules: {
            txt1: { maxlength: 5 }
        },
        beforeSubmit: function(arr, $form, options) {
            $('#txt1').val('123456');
            return true;
        }
    });
});

关于使用提交处理程序进行 jQuery 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1218409/

相关文章:

javascript - 在 jquery 提交处理程序中从 input=file 传递值

javascript - jquery 使用meteorjs 在模态中进行验证

jquery 验证器插件 - 动态更改验证规则

使用非侵入式验证时 jQuery 验证未执行

jquery - 如何将查询结果合并为新列?

javascript - 选择除特定子元素之外的 jquery 元素

javascript - 仅执行一次 Ajax 请求

javascript - JQuery Datatables 对列内的选择进行排序

javascript - Google Chrome 扩展 onclick 警报功能错误

javascript - jquery 验证范围不适用于负数