jQuery内联表单验证 - 隐藏字段

时间:2012-02-20 12:03:52

标签: jquery forms validation hidden

我正在为我的项目使用以下验证器:http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/

我遇到了一些困难,在使用Chosen(http://harvesthq.github.com/chosen/)时将其替换为默认的“select”标签和一些div,并使select标签隐藏。

基本上这与此处描述的问题完全相同:https://github.com/harvesthq/chosen/issues/473但它不应该作为选择的问题而是真正的问题,而是验证者。

所以问题是 - 是否有任何简单的解决方案可以使用该验证器来隐藏隐藏字段?我已经尝试删除那些说忽略隐藏字段的脚本源的所有部分,但这并不能解决问题。每当我提交表单时,它都会验证除隐藏字段之外的所有字段。

提前感谢您提供任何帮助

3 个答案:

答案 0 :(得分:2)

使用'select prettifier'jQuery脚本时,我遇到了类似的问题。而不是隐藏原始选择,正如您所见,这意味着jQuery验证忽略它,我将它设置为positionabsolute并将其左侧位置设置在页面之外:

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

虽然可能有一个更优雅的解决方案。

答案 1 :(得分:2)

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

答案 2 :(得分:2)

这是我最终解决的解决方案,以防某些人也需要它:

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