<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;
}