2010-11-09 112 views
5

如何確定我的單選按鈕是否被選中?JQuery:如何確定單選按鈕是否被選中?

例如:

if (radio_button_selected) { 

// do something 

} else { 

// do something else 

} 
+0

這個問題之前無數次被問。在提問之前請先搜索答案。 http://stackoverflow.com/questions/4138300/validating-a-form-with-a-radio-button/4138350#4138350 – zzzzBov 2010-11-09 22:25:58

回答

7

您可以使用此選擇,以確定是否被檢查:

jQuery("input[name='my_button_group']:checked") 

因此,例如:

if (jQuery("input[name='my_button_group']:checked")) { 
    ... 
} 
else { 
    ... 
} 
+0

爲什麼我需要**。length> 0 **? – StaceyH 2010-11-09 22:09:56

+0

@StaceyH - 你不用JavaScript,但這比其他答案(因爲輸入)要快得多。 – 2010-11-09 22:10:57

+0

@Nick Craver ...不能確定你是否可以在我的帖子中看到我的評論..但是看一看 – 2010-11-09 22:17:37

1
if ($("input[name='yourRadioName']:radio:checked").length) { 
} else { 
} 
+0

@Nick Craver ... Justin的方法與我的方法有所不同。 ':radio'確保選中一個單選按鈕,而不僅僅是名稱爲「yourRadioName」的任何檢查輸入。但是,您正確使用輸入會更快地執行。 – 2010-11-09 22:16:45

1

如果你有您的單選按鈕rb已經通過其他方式選擇,你可以這樣做:

var rb = $('whatever selector'); 

// other code 

if (rb.is(':checked')) 
{ 
    // code 
} 
+0

+1能夠重新使用rb代碼中的其他內容(例如獲取val()) – Ben 2010-11-09 22:13:56

+0

@jelbourn'rb.checked'是更好的選擇 - 它更快,更具可讀性。 – 2010-11-09 23:05:12

+0

@ŠimeVidas:'checked'不是jquery列表對象的屬性。實際的DOM對象具有'checked'屬性。 – jelbourn 2010-11-10 14:24:54

1

如果必須元素的引用已經,您可以使用它checked屬性:

$('input[type=radio]').focus(function(){ 
    // "this" is the element that was clicked 

    if (this.checked) { 
     // do something 
    } else { 
     // do something else 
    } 
}); 
+1

這不是沒有意義的,因爲如果用戶「點擊」了一個單選按鈕,它總是會被「檢查」,因此您永遠不會在 – StaceyH 2010-11-09 22:17:04

+0

@StaceyH之上達到ELSE條件。點。改爲「重點」來說明我的觀點。 – lonesomeday 2010-11-09 22:30:51

相關問題