jQuery - 未选中的单选按钮不返回值

时间:2014-05-01 18:46:54

标签: javascript jquery html

对于我的生活,我无法弄清楚我做错了什么,我有一个带有单选按钮和文本框的基本表单。我正在尝试执行基本验证,所以如果我将来添加文本区域或选择框,它将使用 if($ this).val()==='')进行验证非常适合那些,但为什么不是我的收音机键?当我尝试提醒长度时,我只收到一条警报信息,而不是两条?任何帮助是极大的赞赏! JS小提琴链接http://jsfiddle.net/5Sacj/

<div class="two-column">
  <label id="gender" for="gender">Gender</label>
  <input type="radio" name="customer" value="male" />Male
  <input type="radio" name="customer" value="female" />Female
</div>

<div class="two-column">
  <label for="fname">*First Name</label>
  <input type="text" class="text" id="fname" name="fname" />
</div>

JQUERY

$(document).ready(function() {     
    $(":text, :radio").each(function() {
    if($(this).val() === "")
     alert($(this).length);
    });
});

2 个答案:

答案 0 :(得分:3)

这适用于文本框和单选按钮。

$(":text, :radio").each(function() {
    if($(this).val() === "" || !$(this).is(':checked'))
        alert($(this).length);
});

如果您希望它适用于textareas和所有类型的输入,请将您的选择器更改为:

$("input, textarea").each(function() {
   // same code
});

已编辑:http://jsfiddle.net/5Sacj/2

答案 1 :(得分:0)

因为已经设置了两个无线电项目的值。

<input type="radio" name="customer" value="male" />Male
<input type="radio" name="customer" value="female" />Female

如果您将JS更改为
$(document).ready(function() {

    $(":text, :radio").each(function() {

     alert($(this).length);
   });

});

$(":text, :radio").each(function() { alert($(this).length); }); });

你会得到三个弹出窗口。