如何使用jQuery使用dropkick select元素validation表单validation(基于DIV的select表单元素)

我想在基于div的select表单元素上使用jQueryvalidation库。 我正在使用dropkick库来美化我的选择,但由于我的选择元素被DIVS重新创建,我在尝试validation表单时遇到了困难。

  Please Select   Admin   Auditor   

上面的选择字段将转换为下面的html。

  

我为validation器构建了以下自定义方法,但不确定如何将其应用于表单validation过程。

 $.validator.addMethod( "permissionGroupCheck", function(value, element){ var spanValue = $("#dk_container_permissionGroup span.dk_label").text(); if(spanValue == "Please Select"){ return false; }else{ return true; } } ); 

我知道这是一个姗姗来迟的答案,但我找到了一个解决方案。 validation不适用于dropkick库,因为原始选择框显示display:none; css风格。

修复,强制原始选择框css:

 display: block !important; 

这将使其可见,但由于新的自定义选择框位于其上,因此无法显示。

或者将此行添加到validation器配置:

 ignore: "" 

它将阻止插件使用display:none忽略元素。

点亮Gajotres并添加忽略到bassistance.de jqueryvalidation插件!

 {ignore:""} 

……为我工作

当我尝试用css解决这个问题时,我遇到了一个问题。 我有[1.0.0]的DropKick版本隐藏了带内联显示的选择框:无。 这不能从样式表中覆盖,所以我必须注释掉dropkick.js中隐藏选择框的行:

 //$select.hide(); 

@插件中的150行给我。

为了完成这些工作,我将CSS中的选择框从屏幕上移除:

  position:absolute; left:-9999em; 

工作得很好。 也许更新的版本隐藏的东西不同?

高亮和unhighlightfunction可能会有所帮助:)

 $('.default').dropkick(); $('.example_form').validate({ highlight: function (element, errorClass) { $(element).siblings('.dk_container').addClass('error'); $('.dk_toggle').css('border', 'none'); }, unhighlight: function(element, errorClass) { $(element).siblings('.dk_container').removeClass('error'); $('.dk_toggle').css('border', '1px solid #ccc'); } }); 

http://jsfiddle.net/jackoverflow/82XvN/