使用jQuery验证器插件,如何使用动态创建的名称属性来分配规则?

时间:2010-04-23 16:35:43

标签: jquery jquery-validate name-attribute

问题在于:

我们使用的电子商务系统会为购买的每件商品生成一个订单项。它为行项目的数量输入提供名称属性“qty0”,“qty1”,“qty2”等,因为行项目沿着页面向下。

我需要检查这些qtyX输入的有效性,但我不知道如何将name属性作为类的另一个属性的相对属性传递,或者将正则表达式传递给validate插件以查找所有数量字段。

这是验证码:

var validator = $("#formName").validate({
    rules: {
        qty: { customMethod: true}// qty
        },//rules

    messages: {
        qty: {customMethod: "NOPE"}
    },

    errorPlacement: function(error, element) {
            error.appendTo("#itemQuantityError");
    },

});

以下是生成的输入示例:

<td ><input name="qty1" value="6" size="5"></td>

谢谢!

1 个答案:

答案 0 :(得分:5)

您可以动态生成规则和消息:

var rules = new Object();
var messages = new Object();
$('input[name^=qty]:text').each(function() {
    rules[this.name] = { required: true };
    messages[this.name] = { required: 'This field is required' };
});

var validator = $("#formName").validate({
    rules: rules,
    messages: messages,
    errorPlacement: function(error, element) {
        error.appendTo("#itemQuantityError");
    }
});