我将jquery验证放在select字段上,我取字段名是name =“course []”。我把它放在数组中,因为我想在表中存储多个选定的选项,但是当我在验证中使用此名称时,我的验证不适用于选择字段,任何人都可以建议我任何解决方案。
我的jquery代码在这里: -
<script type="text/javascript">
$("#formValidate").validate({
rules: {
course:{
required: true
},
messages: {
course:{
required: "Enter a username";
},
errorElement : 'div',
errorPlacement: function(error, element) {
var placement = $(element).data('error');
if (placement) {
$(placement).append(error)
} else {
error.insertAfter(element);
}
}
});
</script>
我的html字段代码在这里: -
<form class="formValidate" id="formValidate" action="" method="POST">
<select multiple id="course" name="course[]">
<option value="Php">PHP</option>
<option value="ruby">RUBY</option>
<option value="wordpress">WORDPRESS</option>
<option value="java">java</option>
</select>
</form>
答案 0 :(得分:0)
问题是您的字段名称是course[]
,而不是course
。因此,您需要将对象键包装在引号中并包括大括号。
另请注意,您的代码有一些错误;您在对象中放置了;
这是一个语法错误,并且您错过了结束}
。
$("#formValidate").validate({
rules: {
'course[]': { // note the quotes and braces here
required: true
},
messages: {
course: {
required: "Enter a username"
},
errorElement: 'div',
errorPlacement: function(error, element) {
var placement = $(element).data('error');
if (placement) {
$(placement).append(error)
} else {
error.insertAfter(element);
}
}
}
}
});
<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 class="formValidate" id="formValidate" action="" method="POST">
<select multiple id="course" name="course[]">
<option value="Php">PHP</option>
<option value="ruby">RUBY</option>
<option value="wordpress">WORDPRESS</option>
<option value="java">java</option>
</select>
<button>Submit</button>
</form>
答案 1 :(得分:0)
如果您使用带有[]
的数组添加字段名称以及'
或"
("#formValidate").validate({
rules: {
"course[]":{
required: true
},
messages: {
"course[]":{
required: "Enter a username";
},
errorElement : 'div',
errorPlacement: function(error, element) {
var placement = $(element).data('error');
if (placement) {
$(placement).append(error)
} else {
error.insertAfter(element);
}
}
});
</script>
答案 2 :(得分:0)
请参阅下面的更新代码,它会打印验证邮件'Enter a username'
,这些邮件未显示在其他用户的答案中,因为他们错过了代码中}
的结束rules
。
$("#formValidate").validate({
rules: {
'course[]': { required: true }
},
messages: {
'course[]': { required: 'Enter a username' },
errorElement: 'div',
errorPlacement: function(error, element) {
var placement = $(element).data('error');
if (placement) {
$(placement).append(error);
} else {
error.insertAfter(element);
}
}
}
});