2014-11-03 59 views
1

好吧,經過無數天的煩惱,並閱讀無數幫助頁面,現在是時候尋求幫助。這段代碼沒有問題。無論我輸入表格的文字都會顯示在彈出框中。好。Javascript getElementById()適用於文本框,但不適用於單選按鈕或下拉選擇器

<script> 
 
function yesorno1(){ 
 
\t var form = document.getElementById('escalation'); 
 
\t if(form.value != "") 
 
\t \t alert("You entered: " + form.value) 
 
\t else 
 
\t \t alert("There is some problem") \t \t 
 
} 
 
</script> 
 
<input type='text' id='escalation' /> 
 
<input type='button' onclick='yesorno1()' value='Submit' />

如果更改從表單的HTML到一個單選按鈕或下拉選擇器,彈出框將總是隻從第一無線電顯示值或首位下拉選項列表。例如,在下面的代碼中,第一個廣播選項是「是」,第二個廣播選項是「否」。無論我是否接受是或否,彈出框總是給出「是」。

<script> 
 
function yesorno2(){ 
 
\t var rad = document.getElementById('escalation2'); 
 
\t if(rad.value != "") 
 
\t \t alert("You entered: " + rad.value) 
 
\t else 
 
\t \t alert("There is some problem") \t \t 
 
} 
 
</script> 
 

 
Is this an escalation?<br> 
 
<input type='radio' id='escalation2' value='yes'> Yes<br> 
 
<input type='radio' id='escalation2' value='no'> No<br><br> 
 
<input type='button' onclick='yesorno2()' value='Submit' />

有誰知道的實現代碼,使無線電肯定會給彈出消息「是」和無線電無會給彈出消息沒有?

+0

它已經ask.please看看這裏http://stackoverflow.com/questions/15839169/how-to-get-value-of-selected-radio-button – 2014-11-03 00:50:03

+0

HTML中沒有兩個元素可以有相同的ID相同的頁面。它總是隻能找到第一個。也是第一個總是有'是'的值並不意味着它的檢查 – OJay 2014-11-03 00:51:19

+0

在這裏,你去。一個工作jsfiddle:http://jsfiddle.net/ianhazzard/vj1o3xcq/ – 2014-11-03 01:03:08

回答

1

<script> 
 
function yesorno2(){ 
 
\t var rad = document.getElementById('theForm').elements['escalation2']; 
 
\t if(rad.value != "") 
 
\t \t alert("You entered: " + rad.value) 
 
\t else 
 
\t \t alert("There is some problem") \t \t 
 
} 
 
</script> 
 
<form id='theForm'> 
 
Is this an escalation?<br> 
 
<input type='radio' name='escalation2' value='yes'> Yes<br> 
 
<input type='radio' name='escalation2' value='no'> No<br><br> 
 
<input type='button' onclick='yesorno2()' value='Submit'> 
 
</form>

你犯了兩個錯誤:

  • 的單選按鈕的共同屬性是name,不id
  • 沒有「搶」單選按鈕,進入對於表單元素:它包含一個數組(elements),它使您可以直接訪問「作爲一個組」的單選按鈕。在那裏你可以找到value

注意:如果使用Firefox,則需要版本33(2014-10-14發佈)或更高版本。 RadioNodeList終於到達了Firefox。

+0

男人,非常感謝。這像一個魅力。並感謝你也教我這個概念,我非常感謝幫助! – JeremyCanfield 2014-11-03 23:59:57

+0

嘿羅伯特,抱歉爲了長時間的投票。我不是一個經常使用的用戶,所以我花了我一段時間纔得到足夠的聲望,並找出Stack Overflow的工作原理,但是我想這樣做是對的,因爲你幫助我完成了這一步:) – JeremyCanfield 2015-03-28 03:48:41

相關問題