测试是否未选中单选按钮

时间:2012-07-07 22:19:32

标签: jquery

我想查看是否使用jquery检查了一个框。 我的目的是在没有选择任何选项的情况下防止表单隐藏。

$("#submit").click(function(){  
var opt = $('input[name=value]:checked').attr('value');
if(opt!='undefined'){
$.ajax({
type: "POST",
url: url,
data: 'option='+opt,
cache: false,
success: function(html)
{   
 alert(opt);

}
     });
}       
return false;
});

HTML

<form id="form" method="post" action="">
<input type="radio" name="value" value="1" />1<br>
<input type="radio" name="value" value="2" />2<br>
<input type="radio" name="value" value="3" />3<br>
<input type="radio" name="value" value="4" />3<br>
<input id="submit" type="submit" value="submit"/>
</form>

5 个答案:

答案 0 :(得分:2)

我建议您在执行任何其他操作之前先检查$('input[name=value]:checked').length。 )如果未检查任何元素,则它将等于0.换句话说,替换

var opt = $('input[name=value]:checked').attr('value');

...与

var $checkedElement = $('input[name=value]:checked');
if (! $checkedElement.length) {
   // no option was selected, return false or alert
} 
var opt = $checkedElement.val();

您的原始代码非常接近,只有一个错误:您应该将optundefined变量)进行比较,而不是{{1 (一个字符串)。

'undefined'

if (opt != undefined) { ... do the thing .. } 实际上总是评估为opt != 'undefined',因为HTML中没有单选按钮的值为false。再次考虑'undefined'false之间的差异 - 后者实际上是一个真正的值(虽然不等于'false');

答案 1 :(得分:1)

$("checkbox").is(":checked");

返回true或false。是否被选中

答案 2 :(得分:0)

演示 http://jsfiddle.net/ZKC2z/

好读:http://api.jquery.com/checked-selector/

还有一个:not选择器

.is(":checked")会帮你解决问题。

答案 3 :(得分:0)

如果未使用.is()

进行检查
if ( ! $("input").is(':checked') )

只需在之前添加!,或使用.not()

if ( ! $("input").not(':checked') )

答案 4 :(得分:0)

希望这会有所帮助......

$("#submit").click(function(){  
var opt = $('input[name=value]:checked').attr('value');
if(opt){
 alert(opt + "- ok, posting!");
 return true;
} else {
 alert('pick something first');
 return false;
}
});