Firebug向我展示了以下内容:
从以下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"
}
});
答案 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
});