2010-05-16 111 views
1

我正在嘗試做一個民意調查,但我沒有設計任何收音機框。所以我決定讓選擇以不同的背景色突出顯示,全部都是用jquery完成的。用JavaScript處理廣播框選擇

我把收音機的顯示設置爲none,這樣它就不會顯示,給每個唯一的ID。這是腳本。

<form action="v_poll.php" method="post"> 
<ul class="voting"> 
<li class="voting votetext"><input type="radio" name="voting" value="a1" style="display:none;" id="a1"><a onClick="vote('a1')"Answer 1</a></li> 
<li class="voting votetext"><input type="radio" name="voting" value="a2" style="display:none;" id="a2"><a onClick="vote('a2')">Answer 2</a></li> 
<li class="voting votetext"><input type="radio" name="voting" value="a3" style="display:none;" id="a3"><a onClick="vote('a3')">Answer 3</a></li> 
<input type="hidden" value="1" name="id" /> 
<input type="submit" value="submit"> 
</ul> 
</form> 
<script type="text/javascript"> 
function vote(TheValue) { 
GetElementById(TheValue).checked=true; 
} 
</script> 

但是,當我用$ _POST ['voting']檢查收音機的值時,它是空白的。不是分配給收音機的值。我做錯了什麼?

請幫忙。謝謝。

+1

請**請不要使用javascript,因爲它完全支持本地HTML,您只是在沒有任何理由的情況下打破非JavaScript的消費者。 – 2010-05-16 12:42:37

回答

4

你可以做到這一點沒有JavaScript的爲好,使用<label>for="id"代替<a>,像這樣:

<li class="voting votetext"> 
    <input type="radio" name="voting" value="a1" style="display:none;" id="a1"> 
    <label for="a1">Answer 1</label> 
</li> 

這是什麼新鮮事/ HTML5或任何東西,任何瀏覽器IE6 +,並可能會更老,將支持這一點。

+0

這是最好的方法。 – vsync 2010-05-16 12:28:46

3
GetElementById(TheValue).checked=true; 

應改爲:

document.getElementById(TheValue).checked=true;