我有一对单选按钮如下
<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
}
答案 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");
}
答案 4 :(得分:0)
if ($('input:radio[name="newsletter"]:checked').val() == 1 ) {
//add email to newsletter list
}
因为你检查收音机是否被检查了。 您必须检查选择了哪个。