2010-11-09 104 views
20

我有以下HTML:JQuery的:得到單選按鈕值

HTML:

<input type="radio" name="abc" value="0" selected="selected" style="display:none" /> 
<input type="radio" name="abc" value="1" />1+ 
<input type="radio" name="abc" value="2" />2+ 
<input type="radio" name="abc" value="3" />3+ 

jQuery來獲得所選擇的單選按鈕

$('input:radio[name=abc]:checked').val(); 

爲什麼沒有上面的代碼工作在頁面加載時,用戶選擇了一個單選按鈕之前?這很奇怪,因爲上面的代碼在用戶選擇一個單選按鈕後工作。

在我看來,我已經默認單選按鈕值設置爲0,但如果你

含義,如果選擇了單選按鈕值,返回所選擇的值 - 否則,返回0(如果沒有價值已經被選中)

+0

您是否在'$(document).ready()'內部有代碼? – mway 2010-11-09 22:40:38

+2

@StaceyH這是你第四次問這個問題。如果需要澄清,請編輯以前的問題。 – lonesomeday 2010-11-09 22:46:39

+0

[JQuery:如何確定單選按鈕是否已被選中?]的可能重複(http://stackoverflow.com/questions/4139165/jquery-how-to-determine-if-a-radio-button-has-被選中) – lonesomeday 2010-11-09 22:46:51

回答

8

電臺具有屬性checked,不selected

<input type="radio" name="abc" value="0" checked="checked" style="display:none" /> 
<input type="radio" name="abc" value="1" />1+ 
<input type="radio" name="abc" value="2" />2+ 
<input type="radio" name="abc" value="3" />3+ 
23

您使用了錯誤的屬性。對於單選按鈕,您必須使用checked屬性,而不是selected屬性。

<input type="radio" checked="checked"> 

或者只是:

<input type="radio" checked> 
+0

那麼,我應該改變什麼? – StaceyH 2010-11-09 22:46:33

+4

@jnpcl噢,真是的。但有趣的是,但。 – 2010-11-09 22:51:01

+0

@StaceyH,你應該像@Šime建議的那樣做,並將'selected'改爲'checked'。 @ jnpcl,也許有點太苛刻;我不認爲@StaceyH是*故意*鈍的。 – 2010-11-09 22:52:34

19

第一個正確的屬性來檢查並刪除選定的屬性,它是錯的,然後使用下面的代碼。 t將在點擊按鈕時獲得單選按鈕的選定值。 ex for列表

$("#btn").click(function() { 
     $('input[type="radio"]:checked').val(); 
     });