我想验证我的选择框,但因为我使用jQuery UI来设置我的选择框样式,它不起作用。jQuery UI选择与验证插件组合
jQuery用户界面上设置显示真正的选择框:无所以这就是为什么它不能正常工作,请参阅:
但我怎么能使其与jQuery UI的选择框插件工作?
我希望有一个人有一个工作解决方案。 :)
我想验证我的选择框,但因为我使用jQuery UI来设置我的选择框样式,它不起作用。jQuery UI选择与验证插件组合
jQuery用户界面上设置显示真正的选择框:无所以这就是为什么它不能正常工作,请参阅:
但我怎么能使其与jQuery UI的选择框插件工作?
我希望有一个人有一个工作解决方案。 :)
这只是因为selectMenu
隐藏select
。默认情况下,验证不会验证隐藏的元素。您可以通过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
不会重新验证输入。
// SELECTBOXES
$(function() {
$('.dataTables_length input, select').not("select.multiple").selectmenu({
style: 'dropdown',
transferClasses: true,
width: null,
change: function() {
$(".valid").validate().element(this);
}
});
});
你是男人,thnx!但是,当用户选择一个选项,然后错误信息不会消失,有没有办法可以完成? – Maanstraat 2012-04-05 12:41:41
@Maanstraat:是的,检查更新的答案 – 2012-04-05 12:45:20
谢谢安德鲁你的时间。 – Maanstraat 2012-04-05 12:51:49
你可以提供一个[SSCCE(HTTP:// SSCCE您可以通过点击进入
change
事件的selectMenu
和手动重新验证元素解决这个问题.ORG /)?插件的attach方法隐藏原始选择框,并用自定义选项替换它(通过使用display:none)。您必须改用[插件](http://www.bulgaria-web-developers.com/projects/javascript/selectbox/)提供的选择器。 – lzdt 2012-04-05 10:28:05嗨Izdt,我不是一个真正的JS程序员,所以我不太明白你在说什么。我希望你可以帮助我?我用我现在的代码制作了一个JSFiddle:http://jsfiddle.net/jB5mE/ – Maanstraat 2012-04-05 10:33:05