0

我正在尝试清理我的视图中的一些 JavaScript,我想做的一件事是将我的 jQuery 验证代码移动到外部脚本函数并传递对我需要处理/验证的字段的引用。我面临的问题与 jQuery Validate 的规则字段的签名如何格式化有关:

$("#form").validate({
    rules: {
        txtNoSpam: {
            remote: WebSettings.SpamFilterValidationUrl
        }
    },
    messages: {
        txtNoSpam: {
            remote: "Answer is incorrect."
        }
    },
});

在上面的代码中,'txtNoSpam' 直接映射到我页面上名为 txtNoSpam 的元素,但我更愿意将 txtNoSpam 作为对象传递到我的初始化函数中,然后使用提供的对象的元素名称作为参数将验证映射到正确的字段姓名:

function Init(form, field1)
    form.validate({
        rules: {
            field1.attr('name'): {
                remote: WebSettings.SpamFilterValidationUrl
            }
        },
        messages: {
            field1.attr('name'): {
                remote: "Answer is incorrect."
            }
        },
    });
}

有什么办法可以做到这一点?

4

1 回答 1

1

尝试在步骤中构建验证选项,以便您可以使用 []。请参见下面的示例:

function my_validate(field_name) {
   var opts = {rules:{},messages:{}};
   opts.rules[field_name] = {remote: WebSettings.SpamFilterValidationUrl};
   opts.messages[field_name] = {remote: "Answer is incorrect."};
   form.validate(opts);
}

更新:考虑到您更新的问题,这里是初始化:

function Init(form, field1)
   var opts = {rules:{},messages:{}};
   opts.rules[field1.attr('name')] = {remote: WebSettings.SpamFilterValidationUrl};
   opts.messages[field1.attr('name')] = {remote: "Answer is incorrect."};
   form.validate(opts);
}
于 2009-08-27T23:05:50.283 回答