jQuery Validator取决于undefined方法

时间:2012-01-26 22:58:37

标签: jquery jquery-validate

Firebug向我展示了以下内容:

firebug screenshot

从以下Validator初始化:

$("#surveyForm").validate({
    errorPlacement: function(error, element) { 
    if ( element.is(":radio") ) {
        error.appendTo ( '#' + element.attr('name') + '_multiError' ); 
        } else if ( element.is(":checkbox") ) {
        error.appendTo ( '#' + element.attr('name') + '_multiError' );
        } else {
        error.appendTo( element.parent() );
        }
},
    rules: {
     ans_23: {
         depends: function(element) {
           return $("#ans_22:checked")
         }
 }
   },
   debug: true
});

该规则基于规则here下的第二个示例。

被引用的HTML看起来像这样

<td class='two_columns'>
<label>
<input type='radio' name='rad_22' id='ans_22' class='required' value='Yes'  />  Other
</label>
<input type='text' name='ans_23' id='ans_23' value='' class='' />
</td>

任何人都知道为什么depends方法是未定义的?

脚注:我也尝试使用规则添加方法(见下文)。当调用validate()并且ans_23没有获得“必需”类时,该表单已经过验证并且没有错误....

$("#surveyForm").rules("add", {
  ans_23: {
    required: "#ans_22:checked"
  }
});

1 个答案:

答案 0 :(得分:4)

我看到您发表评论回复,将我的评论转换为答案......所以这里是:

$("#surveyForm").validate({
    errorPlacement: function(error, element) { 
    if ( element.is(":radio") ) {
        error.appendTo ( '#' + element.attr('name') + '_multiError' ); 
        } else if ( element.is(":checkbox") ) {
        error.appendTo ( '#' + element.attr('name') + '_multiError' );
        } else {
        error.appendTo( element.parent() );
        }
},
    rules: {
     ans_23: {
         required: {
           depends: function(element) {
             return $("#ans_22:checked");
           }
         }
 }
   },
   debug: true
});