【问题标题】:Validate Form Fields having [ or ] in names OR with ID [duplicate]验证名称中包含 [ 或 ] 或 ID 的表单字段 [重复]
【发布时间】:2014-10-24 12:27:31
【问题描述】:
我正在使用jquery.validate.min.js 进行表单字段验证。
我有一些名称为JFromField[contactname] 的字段(因为我使用的是Joomla,并且它来自后端)意味着它们的名称中有[ 和]。
那么在规则中,我该怎么做呢?
rules:{
myFieldName : { required: true }
}
另一个问题是可以根据ID指定rules吗?
【问题讨论】:
标签:
javascript
jquery
validation
【解决方案1】:
由于[ 或] 不是有效标识符,您可以将密钥作为字符串传递,例如
$('form').validate({
rules: {
myFieldName: {
required: true
},
'JFromField[contactname]': {
required: true
}
}
});
//to simulate validation since form submit is prevented
$('#save').click(function(){
return $('form').valid()
})
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.js"></script>
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.12.0/jquery.validate.js"></script>
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.12.0/additional-methods.js"></script>
<form>
<input name="myFieldName" />
<br />
<input name="JFromField[contactname]" />
<br />
<input type="button" id="save" value="Save" />
</form>
【解决方案2】:
javascript 对象的语法。使用 " 或 ' 将带有 [ ] 的字段分配给对象。并使用 ["field"] 获取值。
var r = { rules: { "JFromField[contactname]" : { required: true } } };
console.log(r);
console.log(r.rules);
console.log(r.rules["JFromField[contactname]"]);
console.log(r.rules["JFromField[contactname]"].required);