2013-07-15 173 views
4

我在網站上正與幾種形式的單選按鈕,其中一個是這樣的:訪問單選按鈕值

<form id = "configuration"> 
    <ul> 
     <li><input type="radio" name="configuration" id="0" value="0"/> GT Manual</li> 
     <li><input type="radio" name="configuration" id="1" value="1"/> GT Automatic</li> 
    </ul> 
</form> 

有沒有辦法(JavaScript的),我可以訪問值直接的單選按鈕,例如

var value = document.getElementById("configuration").configuration.value; 

(這裏的第一個「配置」的形式編號,而第二個「配置」這個名字,而不是通過每個元素的形式循環檢查選擇了哪個按鈕?

謝謝!

+0

你應該使用jquery通過父類的名字來訪問子元素。 –

+0

當然,謝謝。我正在尋找一種JavaScript方法。 –

+0

改爲使用getElementsByName()! – JamesN

回答

1

號你要遍歷所有的無線電集團以找出選擇哪一個。.configuration是一個標準的節點列表,而不是一個「子」與處理單選按鈕組額外的功能。

+0

嗯,我只是想知道,因爲在同名的按鈕中不能有兩個按鈕被選中,爲什麼沒有這樣的功能可以直接訪問按鈕?我的意思是,這種功能的實現可能仍然在循環NodeList,但有沒有一個HTML/JavaScript內置函數呢? –

2

得到它像這樣...

var radios = document.getElementsByName('configuration'); 
for (i = 0; i < radios.length; i++) { 
    if (radios[i].type == 'radio' && radios[i].checked) { 
     alert(radios[i].value); 
    } 
} 
+0

現有的代碼已經獲得了廣播組,你的新的第一行代替了那個,但是不起作用,因爲它們是''而不是''。你也應該避免使用全局變量。 – Quentin

+0

爲什麼downvote ....這是完全有效的 – KyleK

+0

謝謝!如果你刪除'標籤',這是完全有效的。我只是想知道,因爲單選按鈕的選擇在所有共享名稱的元素中都是唯一的,所以可能有一個函數可以直接檢查按鈕。但似乎不太可能沒有... :( –

-1

由於單選按鈕是組的一部分,所以它們具有相同的名稱並由不同的ID標識。 KyleK提供的答案完全有效。 但是這裏是另一種方式來做到這一點 http://jsfiddle.net/9W76C/

if (document.getElementById('0').checked) { 
    alert("GT Manual"); 
} 

我也建議你使用jquery ...

+0

這看起來像一個更好的解決方案!!! – 2013-07-15 10:53:42

-1

如果你使用jQuery,你可以做$('#configuration input:checkbox').val();知道哪一個選擇

+0

這個問題被標記爲'javascript'其中說*除非一個框架/庫的標籤也包括在內,純JavaScript的答案是*即使不是這樣,你的代碼會得到**第一個複選框的值**而不是**選中的單選按鈕** – Quentin