2013-07-08 47 views
0

形式包括收音機,選擇,輸入等。如何從'HTML表單'接收到JavaScript代碼的值?

var variable = document.getElementById('anyId').value; 

它正常工作與輸入元素,但單選按鈕元素期望它不工作!

在我的HTML頁面(無線電)的代碼看起來像這樣,

<input type="radio" id="radioValue" name="radio" value="2">Radio_1 
<input type="radio" id="radioValue" name="radio" value="1">Radio_2 

,並在腳本

var radio_value = document.getElementById('radioValue').value; 

radio_value總是等於2,也無所謂是否您選擇radio_1或radio_2。

+3

** ID必須是唯一的!** –

回答

1

通過使用getElementsByName

var selectedradio; 
var radios = document.getElementsByName("radio"); 

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

} 
} 
+0

謝謝,它的工作! – Gaurav

+0

歡迎..前進 –

1

ID必須是唯一的。所以,你應該你的代碼改成這樣:

<input type="radio" id="radioValue1" name="radio" value="2">Radio_1 
<input type="radio" id="radioValue2" name="radio" value="1">Radio_2 

然後你就可以通過獲取這些值:

var radio_value1 = document.getElementById('radioValue1').value; 
var radio_value2 = document.getElementById('radioValue2').value; 
//or 
var radio_value=document.querySelector('input[name="radio"]:checked').value; 
// in this last case you don't need even to have id's in the buttons 

否則試圖用相同的ID讀取兩個值會給你剛纔的第一個他們。

+0

他可以使用jQuery,並得到所有ID輸入元素=「radioValue」沒必要是唯一的,像$('格[ID^=「radioValue 「]') – Drakoumel

+1

@drakoumelitos,第一:ID必須是唯一的;第二:他沒有標記jQuery。 – Sergio

+3

@drakoumelitos這是可怕的建議。首先,ID必須是唯一的(請閱讀W3C規範),其次,不需要jQuery去做那些微不足道的事情。 – lifetimes

0

純JavaScript大部分現代瀏覽器。(工作也即9)

如果你只有一種形式,只有一組無線電的使用querySelector的

這是新的正確方法。

var radio_value=document.querySelector('input[type="radio"]:checked').value 

如果您有多個無線電組和表格,您還可以輕鬆擴展它。

var radio_value=document.querySelector('#YOURFORM input[name="radio"]:checked').value 
相關問題