我正在尝试使用jQuery Validator的errorPlacement将错误消息附加到违规元素之后的下一个TD.multiError。
有些单元格需要无线电输入,我希望消息从元素继续到表格单元格,直到它遇到具有类multiError的消息并在那里附加消息。
这样做的正确方法是什么?
<script>
$(document).ready(function(){
$("#surveyForm").validate({
errorPlacement: function(error, element) {
if ( element.is(":radio") )
error.appendTo( element.nextAll('td.multiError:first') );
else if ( element.is(":checkbox") )
error.appendTo ( element.next() );
else
error.appendTo( element.parent() );
}
});
});
</script>
HTML:
<tr>
<td class='colspan' colspan='2'><p>Which of the following most accurately describes your laboratory facility? </p></td>
</tr>
<tr>
<td class='two_columns'><label><input type='radio' name='rad_22' id='ans_18' class='required' value='18' /> Private / Reference Lab</label>
</td>
<td class='two_columns'><label><input type='radio' name='rad_22' id='ans_19' class='required' value='19' /> Physician's Office</label>
</td>
</tr>
<td class='two_columns'><input type='text' name='ans_23' id='ans_23' value='' class='required' />
</td>
</tr><tr><td colspan='2' class='multiError'></td></tr>
</tr>
答案 0 :(得分:0)
最后我更改了脚本,以便TD有一个ID连接单选按钮组名称,例如“rad_22”和“_multiError”。
然后,appendTo调用成为
error.appendTo ( eval(element.attr('name') + '_multiError') );
这很有效,但我仍然希望得到如何从起始元素遍历所有DOM元素并匹配第一个.foo的答案。