【发布时间】:2012-01-26 22:58:37
【问题描述】:
Firebug 向我显示以下内容:
从以下验证器初始化:
$("#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"
}
});
【问题讨论】:
-
return $("#ans_22:checked")必须是return $("#ans_22:checked").length。 -
@alex - 谢谢。我已经添加但仍然收到来自 FireBug 的“检查元素 ans_23 时发生异常,检查 'depends' 方法 TypeError: $.validator.methods[method] is undefined”。
-
创建一个jsfiddle.net,我可以帮助你:)
-
看起来你可能错过了一个级别......“取决于”应该在“必需”之内 - 请参阅此 SO 帖子 - stackoverflow.com/questions/3975778/…
-
@alex - 谢谢!这里有两个:jsfiddle.net/pbSPnjsfiddle.net/AVG86/2