2010-05-16 75 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;