我想验证我的选择框但是因为我使用jQuery UI来设置我的选择框样式它不起作用。
Jquery UI设置显示的真实选择框:无这就是为什么它不起作用看到:
但是我如何才能使用jQuery UI selectbox插件?
我希望有人能有一个有效的解决方案。 :)
答案 0 :(得分:8)
这只是因为selectMenu
隐藏了select
。默认情况下,validate不会验证隐藏的元素。您可以将ignore
选项设置为[]
:
$(".valid").validate({
meta: "validate",
ignore: [],
groups: {
checks: checkbox_names
},
errorPlacement: function(error, element) {
if (element.attr("type") == "checkbox")
error.insertAfter(element.parent().siblings().last());
else if (element.is("select")) {
error.insertAfter(element.next("a.ui-selectmenu"))
}
else error.insertAfter(element);
}
});
正如您所注意到的,更改selectMenu
不会重新验证输入。您可以通过点击change
上的selectMenu
事件并手动重新验证该元素来解决此问题:
// SELECTBOXES
$(function() {
$('.dataTables_length input, select').not("select.multiple").selectmenu({
style: 'dropdown',
transferClasses: true,
width: null,
change: function() {
$(".valid").validate().element(this);
}
});
});
答案 1 :(得分:0)
change: function() {
$("#validate-form-name").validate().element(this);
};
这很好用。