Zend框架上的jQuery验证器问题复选框

时间:2012-05-07 15:52:29

标签: jquery zend-framework jquery-validate

当我使用ZF复选框元素时,我有验证问题。

$element = new Zend_Form_Element_Checkbox('iagree', array('uncheckedValue'=>null,'checkedValue'=>'Y','disableLoadDefaultDecorators' => true, 'class'=>'required agreetc' ));
$element->addDecorator('ViewHelper')
    ->setRequired(true)
    ->addErrorMessage('You must agree Privacy policy & Terms of use');
$this->addElement($element);

以上代码输出:

<input type="hidden" value="" name="iagree">
<input type="checkbox" class="required agreetc" value="Y" id="iagree" name="iagree">

这是我的jQuery验证器。

<script language="JavaScript" type="text/javascript">
  $(document).ready(function(){

    $.validator.addMethod("agreetc", function(value, element) {
    return $('#iagree').is(':checked');
}, "You must agree Privacy Policy & Terms of Use.");
    $("#register").validate({ignore: ":hidden"});

  });
</script>

除复选框外,所有其他字段都突出显示。我试过忽略但它没有用

我试过的其他解决方案。我制作了ZF代码,以便它不会输出隐藏字段,但服务器端检查将不起作用。

1 个答案:

答案 0 :(得分:1)

使用以下代码

<script language="JavaScript" type="text/javascript">
  $(document).ready(function(){

    $.validator.addMethod("agreetc", function(value, element) {
    return $('#iagree').not(':hidden').is(':checked');
}, "You must agree Privacy Policy & Terms of Use.");
    $("#register").validate({ignore: ":hidden"});

  });
</script>