[英]Testing if no radio buttons are checked
我想檢查一下是否使用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>
我建議先檢查$('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
( 變量 )而不是'undefined'
(字符串)進行比較。
if (opt != undefined) { ... do the thing .. }
opt != 'undefined'
實際上將始終為false
,因為HTML中沒有單選按鈕具有值'undefined'
。 再次考慮一下false
和'false'
之間的區別-后者實際上是一個真實值(盡管不等於true
);
$("checkbox").is(":checked");
這返回true或false。 是否檢查
如果未使用.is()
檢查
if ( ! $("input").is(':checked') )
只需添加!
之前,或使用.not()
if ( ! $("input").not(':checked') )
希望這會有所幫助...
$("#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;
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.