2011-11-22 88 views
5

我有一個帶有無線電輸入的HTML表單,並且想用javascript來分析結果。 我陷在我的JavaScript函數獲取形式信息:使用javascript獲取單選按鈕的值

function getResults(formInput){ 
    alert (formInput.question1); 
} 

其中問題1是我的單選按鈕組的「名稱」。

這將返回「對象Nodelist」,我不知道什麼是錯的,我希望它返回「1」,這是我選擇的單選按鈕的值。

我不想確定哪個單選按鈕被選中,哪個不是,我需要知道與所選單選按鈕相關的值。

+0

你能使用jQuery? – Mathletics

+0

您是否在javascript.internet.com上檢查了代碼庫?你必須編寫一個循環,並檢查每個按鈕的選定值。 – Tim

回答

10

您所指的object Nodelist正在返回,因爲您有一組共享相同名稱的元素。如果你想看到已選中的單選按鈕的值,通過收集需要循環:

function getResults() { 
    var radios = document.getElementsByName("question1"); 

    for (var i = 0; i < radios.length; i++) {  
     if (radios[i].checked) { 
      alert(radios[i].value); 
      break; 
     } 
    } 
} 

這裏的a working jsFiddle

+0

感謝您對我以前的帖子和這裏的回覆的建議,我會嘗試一下,看看我能做些什麼 –

+0

@JosephRobins,請看最新帖子。我以前的答案中有一個錯誤。 –

+0

哦,你的美麗!我現在很開心:) :) :)非常感謝您的幫助! –

0

你可以得到一個更加簡單和優雅的解決方案:

<input type=radio name=my_radio value=value_1> 

var my_form = document.querySelector('#my_form'); 
var my_radio = my_form.elements.my_radio; 

alert(my_radio.value) // this is the radionodelist.value you can check it on mdn