我不知道我在这里做错了什么。我有一个带有单选按钮和简单文本字段的表单。我正在检查表单字段中是否有值,或者是否已选中任一单选按钮。如果没有值,请向标签添加红色。如果它们有值,我会添加回默认的黑色。但由于某种原因,无论我是否在文本字段中输入值,它都会保持红色。也有点奇怪,但如果我选中第一个复选框,则会出现黑色文本。非常感谢任何帮助。
JS fiddle :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');
}
});
});
});
最佳答案
这是因为您正在使用或运算符||
。
即使true
它也会执行。尝试使用 &&
或为两者使用单独的 if
条件。
关于javascript - jQuery - 检查各种输入类型的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23419828/