jQuery Validate:如何在自定义方法上更改字段值?

时间:2015-05-15 15:24:28

标签: jquery ajax forms jquery-validate

我正在尝试实现一个加密库,该库应该运行到某些字段并填充另一个隐藏字段。

我最好的选择是复制默认的remote方法,该方法运行AJAX调用并返回“pending”,因此jQuery.Validate会等待它提交表单(如果它有效)。这似乎工作正常,因为(通过使用断点)我确实可以在页面实际提交之前在加密字段中识别正确的值。

但是,似乎已经调用了表单提交行为,并且在验证期间对表单字段的任何更改都不会再冒泡:我的后端服务器仍然将该字段视为空。

以下是我想要实现的目标示例:

$.validator.addMethod('encrypted', function(value, element, params, message) {
    var validator = this;
    var errors = {};
    //gets the other field names from params and mingles stuff
    $.post(params.url, { data: data }, {
        success: function(data) {
            element.value = data.value;
            //this here was copied from the `remote` validation method
            var submitted = validator.formSubmitted;
            validator.prepareElement(element);
            validator.formSubmitted = submitted;
            validator.successList.push(element);
            delete validator.invalid[element.name];
            validator.showErrors();
        }
    });
    return 'pending';
};

$('form').validate({
    token: { encrypted: { fields: [/*...*/] }
});

有没有办法在验证期间更改字段值?

0 个答案:

没有答案