我不知道我在这里做错了什么。我有一个带有单选按钮和简单文本字段的表单。我正在检查表单字段中是否有值,或者是否已选中任一单选按钮。如果没有值,则为标签添加红色。如果他们有一个值我正在添加默认的黑色。但出于某种原因,无论我在文本字段中放置一个值,它都会保持红色。也有点奇怪,但如果我检查第一个复选框,则会出现黑色文本。非常感谢任何帮助。
JS小提琴:http://jsfiddle.net/5Sacj/
<form name="headerForm">
<label id="gender" for="gender">Gender</label>
<input type="radio" name="customer" value="male" />Male
<input type="radio" name="customer" value="female" />Female
<br/>
<label for="fname">*First Name</label>
<input type="text" class="text" id="fname" name="fname" />
<br/>
<label for="fname">*Last Name</label>
<input type="text" class="text" id="lname" name="lname" />
<input id="submit" type="submit" name="submit" value="submit"
</form>
JQUERY
$(document).ready(function() {
$("#submit").on('click', function() {
$(":text, :radio").each(function() {
if($(this).val() === '' || !$(this).is(':checked')){
$(this).prev('label').css('color','red');
} else {
$(this).prev('label').css('color','black');
}
});
});
});
答案 0 :(得分:3)
这是因为您正在使用或运营商||
。
即使一个true
,它也会执行。尝试使用&&
或对两者都有单独的if
条件。