jquery if语句单选按钮每次都处理

时间:2013-08-02 13:27:43

标签: jquery if-statement radio-button

我有一对单选按钮如下

  <label class="radio inline" for="radios-0">
     <input type="radio" name="newsletter" id="radios-0" value="1" checked="checked">
        Yes
  </label>
  <label class="radio inline" for="radios-1">
     <input type="radio" name="newsletter" id="radios-1" value="0">
        No
  </label>

它们是Post通过ajax的一部分,脚本工作正常。我有一个额外的部分来检查他们是否在单选按钮上选择是或否,如果是,则订阅邮件列表。但无论是否选择是或否,它仍然会进入列表。

这是因为他们是同一个名字吗?但是,如果没有相同的名称,则可以检查两者。

if ($('input:radio[name="newsletter"]').is(':checked') && $('input:radio[name="newsletter"]').val == 1) {
    //add email to newsletter list
}

5 个答案:

答案 0 :(得分:3)

您的选择器将返回两个单选按钮,并将检查是否已选中其中任何一个

  

是()检查当前匹配的元素集对选择器元素,   或jQuery对象,如果至少有其中一个元素,则返回true   匹配给定的参数reference

您在两个单选按钮中都有id,最好在这里使用id选择器。

if($('#radios-0:checked').length)
{

}

答案 1 :(得分:1)

嗨,这就是你需要的!

if($('input:radio[name="newsletter"]:checked').val() == 1){
    //add email to newsletter list
}

希望这会有所帮助

为什么你的单选按钮位于标签元素内?

<label class="radio inline" for="radios-0">Yes</label>
<input type="radio" name="newsletter" id="radios-0" value="1" checked="checked">
<label class="radio inline" for="radios-1">No</label>
<input type="radio" name="newsletter" id="radios-1" value="0">

也许这会更好?

答案 2 :(得分:0)

替换您的部分代码:

$('input:radio[name="newsletter"]').val == 1

用这个

parseInt($('input:radio[name="newsletter"]').val(), 10) == 1

再试一次

$('input:radio[name="newsletter"]').val() == "1"

答案 3 :(得分:0)

试试这个:

var radioVal = $("input[name='newsletter']:checked").val();
    if (radioVal == 1) {
        alert("Yes");
    }else{
        alert("NO");
    }  

JSFIDDLE DEMO

答案 4 :(得分:0)

if ($('input:radio[name="newsletter"]:checked').val() == 1 ) {
        //add email to newsletter list
    }

因为你检查收音机是否被检查了。 您必须检查选择了哪个。