jQuery - 检查各种输入类型的值

时间:2014-05-02 02:28:11

标签: javascript jquery html

我不知道我在这里做错了什么。我有一个带有单选按钮和简单文本字段的表单。我正在检查表单字段中是否有值,或者是否已选中任一单选按钮。如果没有值,则为标签添加红色。如果他们有一个值我正在添加默认的黑色。但出于某种原因,无论我在文本字段中放置一个值,它都会保持红色。也有点奇怪,但如果我检查第一个复选框,则会出现黑色文本。非常感谢任何帮助。

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

1 个答案:

答案 0 :(得分:3)

这是因为您正在使用或运营商||

即使一个true,它也会执行。尝试使用&&或对两者都有单独的if条件。