2

使用 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 代码,这样它就不会输出隐藏字段,但是服务器端检查到那时将不起作用。

4

1 回答 1

2

使用下面的代码

<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>
于 2013-04-10T10:58:33.993 回答