2012-02-20 102 views
2

我用下面的验证我的项目:http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/jQuery的直列形式验证 - 隐场

我遇到了一些困难,与Chosen一起使用它(http://harvesthq.github.com/chosen/),它用一些div替换了默认的“select”标签,并且隐藏了选择标签。

基本上这是非常相同的问题,在这里描述:https://github.com/harvesthq/chosen/issues/473但它不应该真正地作为选择的问题,而是验证者。

所以,问题是 - 有没有简单的解决方案,以使用验证器来iclude隐藏字段?我尝试删除所有说明忽略隐藏字段的脚本源代码部分,但这并不能解决问题。无论何时我提交表单,它都会验证除隐藏字段以外的所有字段。

预先感谢任何帮助

回答

2

我使用“选择prettifier” jQuery脚本时,也有类似的问题这一点。而不是隐藏原来的选择,正如你已经看到意味着jQuery验证忽略它,我设置它的positionabsolute,并设置它的左侧位置殷实的页面:

.hidden-field { 
    position: absolute; 
    left: -9999px; 
} 

有可能是一个更优雅的解决方案尽管如此。

+0

这可能工作:) 要去检查它现在。 – 2012-02-20 12:48:03

+1

曾为 - tyvm :) – 2012-02-20 14:11:28

2

上述溶液不是一种理想的解决方案。如果回到上面引用的github问题,您会看到一个更好的解决方案,它不涉及“黑客攻击”您正在使用的任何插件。

+0

感谢响应。确实,黑客并不完美 - 使用不同的解决方案来避免它。 – 2012-02-21 08:23:31

2

这里的解决方案,我一直在案情终于走到some1需要它,以及:

function validateChosen(targetId){ 
if ($('#'+targetId).val()=='') { 
    valid=false; 
    $('#'+targetId+'_chzn').validationEngine('showPrompt', '* Field required','','topRight',true); 
    } else { 
    $("."+targetId+"_chznformError").fadeOut("normal",function(){ 
     $(this).remove(); 
    }); 
    } 
}