绕过输入的命名约定?

时间:2015-07-15 18:17:55

标签: jquery forms jquery-validate

我有一组输入,我正在使用jQuery验证,并且它们都将其“错误日志”基于其名称。

这不会有问题,除非大部分名称都设置为适合我们的数据库,因此可以在提交时上传。

例如,我现在有这些命名规则,适用于“名字”和“电子邮件”

rules: {    
    firstname: {
        required: true,
    },
    email: {
        required: true,
    }
},
messages: {
    firstname: "Please enter your name",
    email: "A valid email is required",
}

但每当我有这样的名字时输入:

<input id="edit-submitted-constituent-base-total-constituents" class="form-text hs-input" name="submitted[constituent_base][total_constituents] total_number_of_constituents_in_your_database" required="required" size="60" maxlength="128" type="number" value="" placeholder="">

它有点棘手,因为它不会将submitted[constituent_base][total_constituents] total_number_of_constituents_in_your_database注册为名称,让我更改错误。

我唯一的两个想法是在输入上添加name="",这不起作用,然后以某种方式试图找出如何通过id或某种类型来调用它。有没有人完成这个?

1 个答案:

答案 0 :(得分:2)

当名称不是有效标识符时,您可以在Javascript对象文字中添加属性名称:

rules: {
    "submitted[constituent_base][total_constituents] total_number_of_constituents_in_your_database": {
        required: true
    }
},
messages: {
    "submitted[constituent_base][total_constituents] total_number_of_constituents_in_your_database": "You have to fill in this field"
}

请注意,jquery-validate会自动检测required元素中的<input>属性,因此您可以将其排除在规则之外,只需将其用于邮件。