我为跟随选择框创建了一个jquery验证规则,但它无效。这就是我所做的;
<select id="qual">
<option value="">Choose...</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
我的规则如下 -
$.validator.addMethod("qual", function(value, element, arg){
return arg != value;
}, "Please select a qualification.");
$("#profile-form").validate({
rules: {
eduQualification:{
qual: ""
},
}
)};
问题是即使我选择&#34;选择...&#34;它也不会闪烁错误信息。从选择框。
在提交表格时;即使jquery validate返回了一些错误,它也会被提交。我调用了preventDefault();然而,它似乎也失败了..
$(document).on('click', 'form button[type=submit]', function(e) {
var isValid = $(e.target).parents('profile-form').isValid();
if(!isValid) {
e.preventDefault(); //prevent the default action
} else{
}
});
答案 0 :(得分:1)
qual
规则要完成的是什么?通常,select
只需要required
规则,因为用户只能进行选择,并且无法控制所选值的格式。
您的rules
对象定位到eduQualification
元素,但您没有此name
的元素。
.validate()
的结束括号是向后的。应该是});
...与.validate({...});
您的select
必须包含name
属性,否则该插件根本不起作用;对于你在name="eduQualification"
对象中声明它的方式,它必须是rules
。
$("#profile-form").validate({
rules: {
eduQualification: { // <- this is the NAME
qual: "" // <- this is the METHOD
....
HTML:<select name="eduQualification" id="qual">.....
要简单地更改消息,请使用messages
对象,如下所示......
<select name="foo">
<option value="">Choose...</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
jQuery的:
$(document).ready(function() {
$("#myform").validate({
rules: {
foo: {
required: true
}
},
messages: {
foo: {
required: "Please select a qualification."
}
}
});
});