在我的页面中,有两个插件:jquery validate和jquery easyui .. 我使用jQuery Validate来验证表单中的数据输入。 我使用jQuery EasyUI来自定义组合框,允许在组合框中搜索数据。
所以,我把验证插件:
$("#form1").validate({
rules:{
filename:{
required: true,
minlength: 3
},
leia:{
required: true
}
}
});
没关系!是的工作! 但是当我放入easyUI插件并在combobox'leia'中设置类时,'leia'的验证不再有用。
<form id="form1" action="" method="post">
<div>
<label>Name:</label>
<input type="text" name="filename" />
</div>
<div>
<label>Leiame:</label>
<select name="leia" class="easyui-combobox">
<option value=""></option>
<option value="1">Java</option>
<option value="2">C</option>
<option value="3">C#</option>
<option value="4">PHP</option>
</select>
</div>
<input id="submit-go" type="submit" name="add" value="Add" />
</form>
当我在'leia'中取消课程时,验证工作正常! 有人能帮助我吗?
提前谢谢
答案 0 :(得分:2)
您需要做的就是允许jQuery Validate在隐藏元素上执行。 EasyUI只是隐藏选择并用自己的元素替换它,但最终在后台更新你的选择。为了使这项工作:
$("#form").validate({
ignore:'',//by default it ignores hidden inputs, so setting this to blank overrides that
rules: {
leia: {
required: true
}
},
errorPlacement: function(error,element){
if (element.hasClass('combo-value')){
element.closest("span.combo").after(error);
} else {
element.after(error);
} }
});
我也添加了errorPlacement函数,它将错误消息移到easy UI标记之外(否则它会被隐藏在设置了overflow:hidden
的范围内)。