HTML:
.....
<form id="manage">
<label for="first_name">First Name:</label>
<input class="required" type="text" name="first_name" id="first_name" />
<label for="last_name">Last Name:</label>
<input class="required" type="text" name="last_name" id="last_name" />
<label for="gender">Gender:</label>
<select class="required" name="gender" id="gender">
<option selected value="m">Male</option>
<option value="f">Female</option>
<option value="u">Undecided</option>
</select>
</form>
.....
jQuery的:
.....
$("#manage .required").each( function() {
if ($(this).val() == "") {
alert($(this).attr("id") + " is empty!"); // Code for debugging
$(this).prev().addClass("error");
is_error = true;
}
});
.....
在上面的简单代码段中,如果error
的值为空,我会尝试将<form>
类添加到$(this).attr("id")
中的任何元素。
问题是,由于某些原因,<select>
没有获取first_name
元素;我收到了last_name
和gender
的提醒,但没有得到{{1}} ID的提醒。我已经被困在这个看似微不足道的问题上好几个小时了,但似乎无法弄清楚我错过了什么。
我可能只需要一个好的耳光,但任何非暴力的帮助将非常感激。
答案 0 :(得分:2)
这与$(this).attr('id')
无关,这是因为您的选择没有值为""
的选项,其默认值为m
。
尝试添加一个:
<select class="required" name="gender" id="gender">
<option value="">--Select--</option>
<option value="m">Male</option>
<option value="f">Female</option>
<option value="u">Undecided</option>
</select>
在旁注中,您可以使用this.value
代替$(this).val()
和this.id
代替$(this).attr('id')
<强> Fiddle 强>