2010-01-25 83 views
3

如何使单选按钮的操作更像复选框?我需要一个单选按钮的功能,但它需要能够被取消选择。使单选按钮“可选”:HTML

+0

您是否需要一次选择多个复选框? – toddk 2010-01-25 17:50:42

+0

不需要。单选按钮需要像单选按钮一样工作 - 它们只需要被取消选择即可。 – 2010-01-25 17:52:02

+1

为什么不使用复选框? – miku 2010-01-25 17:52:33

回答

12

通常这是通过添加另一选项“无”来完成的。用户不会指望单击选定的单选按钮将取消选择它,因为这不是正常行为。

另一个不常用的选项是“清除”按钮。虽然我不喜欢这个选项。

+4

+1不改变基本表单元素的基本行为。它极大地混淆了用户。 – 2010-01-25 18:02:19

3

您可以创建一个“none”选项,或者创建一个javascript按钮来取消选择每个单选按钮。我想知道单选按钮的onclick事件是否已经被选中...

2

您可以添加一个onClick函数给每个单选按钮,如果它被选中时(如果没有尝试过,但似乎是合理的),它将被取消选择它。尽管这对于大多数用户来说确实是出乎意料的行为 - 我认为其他答案建议选择“无”选项更好。

编辑:只是为了好玩,我试了一下。有用。我的代码很俗气,只是为了快速测试。

<script> 
    var x = false; 
</script> 

<input type="radio" value="test 1" name="1" onmousedown="if (this.checked) { x = true; }" onclick="if (x) {this.checked = false; x = false; return true;}" />1 
<input type="radio" value="test 2" name="1" onmousedown="if (this.checked) { x = true; }" onclick="if (x) {this.checked = false; x = false; return true;}" />2 
<input type="radio" value="test 3" name="1" onmousedown="if (this.checked) { x = true; }" onclick="if (x) {this.checked = false; x = false; return true;}" />3 
1

您可以使用其他人建议的“无”选项。如果这是不可接受的,您的其他选项有:

  1. 选中逻辑复选框只接受一个选择。
  2. 仅允许单个选择的列表框。