0

我整个周末都在努力解决这个问题,我可能把它复杂化了。我正在工作的简化代码如下。任何帮助将不胜感激 - 因为我已经为此绞尽脑汁了很长时间。

问题:选中两个复选框后,会选择相应的单选按钮。所以选择地球和风复选框将选择“地球和风”单选按钮。

<input name="single" type="checkbox" id="Earth"/>Earth<br>
<input name="single" type="checkbox" id="Wind"/>Wind<br>
<input name="single" type="checkbox" id="Emotion"/>Emotion<br>
<input name="single" type="checkbox" id="Grass"/>Grass<br>
<input name="single" type="checkbox" id="Good"/>Good<br>

<hr>

<input name="pair" type="radio" class="Earth Wind"/>Earth and Wind<br>
<input name="pair" type="radio" class="Earth Emotion"/>Earth and Emotion<br>
<input name="pair" type="radio" class="Earth Grass"/>Earth and Grass<br>
<input name="pair" type="radio" class="Earth Good"/>Earth and Good<br>
<input name="pair" type="radio" class="Wind Emotion"/>Wind and Emotion<br>
<input name="pair" type="radio" class="Wind Grass"/>Wind and Grass<br>
<input name="pair" type="radio" class="Wind Good"/>Wind and Good<br>
<input name="pair" type="radio" class="Emotion Grass"/>Emotion and Grass<br>
<input name="pair" type="radio" class="Emotion Good"/>Emotion and Good<br>

编辑:为了证明,我的努力: http: //jsfiddle.net/rsF6w/:在选中两个复选框后,我还禁用了复选框。

4

3 回答 3

0

您将希望将事件处理程序附加到onClick事件。在这些函数中,您将获取盒子的所有状态。如果选中了两个状态,您将选中相应的单选按钮。这是一个很好解决的问题。完整的代码会破坏学习体验。

于 2012-06-04T16:07:27.013 回答
0

您可以给每个复选框一个使用位掩码的代码。然后进行 OR 比较以获取要选择的单选按钮的位代码。

阅读本文了解更多信息: http ://en.wikipedia.org/wiki/Mask_(computing )

比如earth会有00000001对应的code,wind:00000010,emotion 00000100等。

地球风会得到代码:00000011

于 2012-06-04T16:09:05.373 回答
0

浏览所有复选框(例如for )并检查哪两个被选中。创建两个字符串,它们与所需单选按钮的名称相同(在两个方向上连接它们)。这次通过单选按钮,如果找到匹配的名称,请检查它。

确保您处理异常,例如一次选择 >2 个复选框,不选择有效的对(您不会检查任何内容,还不如使用布尔值)等。

于 2012-06-04T16:09:57.800 回答