【问题标题】:unable to uncheck the radiobutton无法取消选中单选按钮
【发布时间】:2012-06-01 14:56:43
【问题描述】:

嗨,当我单击单选按钮时,它总是选中。我无法取消选中单选按钮正在搜索并尝试How to check/uncheck radio button on click?此链接。

问题

我只能检查一次,一旦我点击取消选中它总是取消选中无法正常工作 代码

  <input value='' type='radio' id='one' onClick="getCurrentLocation()"/>

   $('input[type=radio]').click(function(){

    if (this.previous) {
        this.checked = false;
    }
    this.previous = this.checked;
});

【问题讨论】:

  • 奇怪但上面的代码在 ff、chrome、ie9 中对我有用。 Fiddle
  • 我已经用 jQuery 代码更新了我的答案。

标签: jquery radio-button


【解决方案1】:

它是您唯一的单选按钮吗?

单选按钮专为保持集合中的一种可能状态而开发。

所以如果只有一个单选按钮 - 用复选框更改它。

如果您有多个 - 选择一些默认选项以取消选中当前选中。 但是,如果您单击集合中的另一个收音机,它将被选中,而无需特殊代码。

(据我记得,没有办法通过鼠标单击取消选中浏览器中的单选按钮,所以我不希望脚本也会出现这种行为)

对于复选框,您无需特殊代码即可在单击时取消选中它 - 这是所有浏览器中的默认行为!

如果只是设计问题,那么您可以使用空白和选中单选按钮的IMG,然后单击更改图像。在这种情况下,您可以将状态保留在隐藏的输入字段中。

但这会让您的用户感到困惑......

【讨论】:

  • 你的任务是什么?你确定那里的单选按钮是必需的吗?
  • 当我点击单选按钮时,它总是检查我不能再次取消选中它
  • 试试你任务的复选框!
  • @Danei 知道复选框,但我只需要单选按钮
  • 但是为什么你想要复选框的任务单选按钮?!
【解决方案2】:

最简单的方法是使用相同的name 属性input

示例:

<input name="myname" value='' type='radio' id='one' onClick="getCurrentLocation()"/>
<input name="myname" value='' type='radio' id='two' onClick="getCurrentLocation()"/>

DEMO

由于您需要一次检查,所以最好使用复选框。

<input name="myname" value='' type='checkbox' id='one' onClick="getCurrentLocation()"/>
<input name="myname" value='' type='checkbox' id='two' onClick="getCurrentLocation()"/>

【讨论】:

  • 我只需要一个单选按钮
  • 如果你需要单选,你需要check-bock,而不是单选按钮
【解决方案3】:

这就是他们的工作方式。单选按钮应该是组中的用户,您可以在其中进行选择。如果您想要一个可以切换的按钮,请使用复选框。

如果您试图使用单选按钮来模仿复选框,您只会让您的用户感到困惑。

【讨论】:

  • 对于复选框,您无需特殊代码即可在单击时取消选中它 - 这是所有浏览器中的默认行为!
【解决方案4】:

试试这个,

标记:

<input value='' type='radio' id='one' onClick="getCurrentLocation()"/>

jQuery,

var flag = 0;
$('input[type=radio]').click(function(){
    if(flag === 0)
    {
      $(this).prop('checked', true);              
      flag = 1;
    }
    else if(flag == 1)
    {
      $(this).prop('checked', false);
      flag = 0;        
    }

});

由于您使用的是id,并且只有一个单选按钮直接调用它,因此您不需要使用this

不过,我建议您像其他人一样使用checkbox

Demo

【讨论】:

    猜你喜欢
    • 2016-05-28
    • 2013-10-14
    • 1970-01-01
    • 2016-05-25
    • 1970-01-01
    • 2012-01-23
    • 2012-03-17
    • 2011-03-16
    相关资源
    最近更新 更多