簡體   English   中英

測試是否未選中任何單選按鈕

[英]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();

不過,您的原始代碼非常接近,只有一個錯誤:您應該將optundefined變量 )而不是'undefined' (字符串)進行比較。

if (opt != undefined) { ... do the thing .. }

opt != 'undefined'實際上將始終為false ,因為HTML中沒有單選按鈕具有值'undefined' 再次考慮一下false'false'之間的區別-后者實際上是一個真實值(盡管不等於true );

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

這返回true或false。 是否檢查

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

好的閱讀: http : //api.jquery.com/checked-selector/

還有一個:not選擇器

.is(":checked")將為您解決問題。

如果未使用.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM