我正在尝试使用jquery.validate.min.js来验证客户端的输入。
如果输入名称仅为<input name="price">
例如:
$("#foo-post-form").validate({
rules: {
price: {
required: true,
number: true
}
}
});
.error {
color: red
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.17.0/jquery.validate.min.js"></script>
<form id="foo-post-form">
<label>price</label>
<input name="price">
</form>
但是,当我尝试定位像<input name="foo_fields[15536]">
我得到了
“未捕获的SyntaxError:意外的令牌[”
$("#foo-post-form").validate({
rules: {
foo_fields[15536]: {
required: true,
number: true
}
}
});
.error {
color: red
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.17.0/jquery.validate.min.js"></script>
<form id="foo-post-form">
<label>custom</label>
<input name="foo_fields[15536]">
</form>
我无法更改输入的名称。如何选择类似的输入进行验证?
答案 0 :(得分:1)
请尝试将其括在引号中。 foo_fields[15536]
表示数组或对象。
$("#foo-post-form").validate({
rules: {
"foo_fields[15536]": {
required: true,
number: true
}
}
});
答案 1 :(得分:1)
我从未使用过该验证库,但我敢打赌,如果您修改输入对象,它将解决您的问题。以字符串形式输入字段的密钥:'foo_fields[15536]'
而不是foo_fields[15536]
。
$("#foo-post-form").validate({
rules: {
'foo_fields[15536]': {
required: true,
number: true
}
}
});
.error {
color: red
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.17.0/jquery.validate.min.js"></script>
<form id="foo-post-form">
<label>custom</label>
<input name="foo_fields[15536]">
</form>