<TD>
<input type="text" name="name1" size="35" class="mustEnter" />
</TD>
<TD>
<input type="radio" name="name2" value="val1" class="mustCheck"/>
<input type="radio" name="name2" value="val2" class="mustCheck"/>
<input type="radio" name="name2" value="val3" class="mustCheck"/>
</TD>
<TD>
<input type="checkbox" name="name3" value="valA" class="mustCheck"/>
<input type="checkbox" name="name3" value="valB" class="mustCheck"/>
<input type="checkbox" name="name3" value="valC" class="mustCheck"/>
</TD>
我要测试是否为必填字段(在这种情况下,无线电和复选框)进行了检查,但它不工作。
each()
三次通过单选按钮(或复选框)和$(this).length
总是1.我想避免按名称测试,因为列表可能很长。解决方案是什么?
valid = true;
$("#studentForm input.mustEnter, #studentForm input.mustCheck").each(function() {
if(($(this).hasClass('mustEnter') && $(this).val() != false)
|| ($(this).hasClass('mustCheck') && $(this).length > 0)) {
$(this).parent().removeClass("errorHighlight");
}
else {
$(this).parent().addClass('errorHighlight');
valid = false;
}
我需要检查是否有任何复选框或单选按钮进行了检查,而不是计算所有匹配的元素。 – 2012-02-11 14:27:54
然后使用'$('input.mustEnter:checked').length()'。没有必要自己循环和测试每个单独的元素。 – 2012-02-11 14:47:32
在上面的例子中,如果radio被选中并且复选框不是,'$('input.mustCheck:checked').length()'会给我1,对吧?,如何从类中移除'errorHighlight'类选中的一个,并将其添加到另一个? – 2012-02-11 17:25:03