我想查看是否使用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>
答案 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();
您的原始代码非常接近,只有一个错误:您应该将opt
与undefined
(变量)进行比较,而不是{{1 (一个字符串)。
'undefined'
if (opt != undefined) { ... do the thing .. }
实际上总是评估为opt != 'undefined'
,因为HTML中没有单选按钮的值为false
。再次考虑'undefined'
和false
之间的差异 - 后者实际上是一个真正的值(虽然不等于'false'
);
答案 1 :(得分:1)
$("checkbox").is(":checked");
返回true或false。是否被选中
答案 2 :(得分:0)
答案 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;
}
});