jQuery 验证器依赖于未定义的方法

标签 jquery jquery-validate

Firebug 向我展示了以下内容:

firebug screenshot

来自以下验证器初始化:

$("#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>

有人知道为什么 dependent 方法未定义吗?

脚注:我还尝试使用规则添加方法来执行此操作(见下文)。该表单经过验证,并且在调用 validate() 时没有抛出任何错误,并且 ans_23 没有获得“必需”类....

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

最佳答案

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

$("#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
});

关于jQuery 验证器依赖于未定义的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9026740/

相关文章:

javascript - jquery 运行时出现问题

jquery - 需要条件语句才能仅在不是 IE8 或之前版本且不是移动设备的情况下加载脚本

使用不同输入表单(输入和文本区域)时的 JQuery Validator 问题

asp.net-mvc-3 - ASP.NET MVC 3 和 jQuery 验证

javascript - 从 setTimeout 函数中返回值

javascript - 如何使用 jQuery 在最后一步 (D) 自定义向导中制作单线动画?

javascript - 如何使用 Javascript 删除 anchor 标记文本

javascript - 如何使用 maxlength 在 textarea 中阻止进一步输入

javascript - jQuery 验证器 - Decimal 验证不正确

jquery 验证不适用于多种表单