jQuery Validator - errorPlacement - 在元素之后查找下一个td.foo

时间:2012-01-25 23:50:47

标签: jquery validation

我正在尝试使用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?&nbsp;</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>

1 个答案:

答案 0 :(得分:0)

最后我更改了脚本,以便TD有一个ID连接单选按钮组名称,例如“rad_22”和“_multiError”。

然后,appendTo调用成为

error.appendTo ( eval(element.attr('name') + '_multiError') );

这很有效,但我仍然希望得到如何从起始元素遍历所有DOM元素并匹配第一个.foo的答案。