为 jQuery 验证选择一个异常命名的输入会导致语法错误
Selecting an unusually named input for jQuery validation leads to syntax error
我正在尝试使用 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]">
我明白了
"Uncaught SyntaxError: Unexpected token ["
$("#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>
我无法更改输入的名称。我怎样才能 select 这样的输入进行验证?
尝试用引号括起来。 foo_fields[15536]
表示数组或对象。
$("#foo-post-form").validate({
rules: {
"foo_fields[15536]": {
required: true,
number: true
}
}
});
我从未使用过该验证库,但我敢打赌,如果您修改输入对象,它会解决您的问题。以字符串形式输入该字段的键:'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>
我正在尝试使用 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]">
我明白了
"Uncaught SyntaxError: Unexpected token ["
$("#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>
我无法更改输入的名称。我怎样才能 select 这样的输入进行验证?
尝试用引号括起来。 foo_fields[15536]
表示数组或对象。
$("#foo-post-form").validate({
rules: {
"foo_fields[15536]": {
required: true,
number: true
}
}
});
我从未使用过该验证库,但我敢打赌,如果您修改输入对象,它会解决您的问题。以字符串形式输入该字段的键:'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>