2012-05-26 226 views
-1

嗨,当我点击放射按钮时,它总是checked.I不能取消选中我正在serching的放射按钮,并尝试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; 
}); 
+0

奇怪但上面的代码适用于ff,chrome,ie9。 [小提琴](http://jsfiddle.net/qegLN/) – Jashwant

+0

我用jQuery代码更新了我的答案。 –

回答

1

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

无线电按钮开发用于保持集合中可能的状态之一。

因此,如果只有一个单选按钮 - 用复选框更改它。

如果您有其中几个 - 选择一些默认的一个用于取消选中当前选定的。 但是,如果你点击集合中的另一个无线电,它将被检查而不需要特殊的代码。

(据我记得,有没有办法取消与上面的鼠标点击浏览器单选按钮,所以我不指望从脚本,水煤浆为好)

为您复选框不需要特殊的代码就可以在点击时取消选中 - 它是所有浏览器中的默认行为!

如果它只是dessign的问题,那么你可以使用IMG的空白和单选按钮,并onClick更改图像。在这种情况下,您可以将您的状态保持在隐藏输入字段中。

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

+0

无法检查并取消选中放射按钮吗? – user1324068

+0

你的任务是什么?你确定那个单选按钮是否在那里? – DaneSoul

+0

当我点击单选按钮,它经常检查我无法取消勾选再次 – user1324068

1

最简单的方法是使用相同的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()"/> 
+0

我需要一个单选按钮只有 – user1324068

+0

如果需要单,您需要检查,博克,而不是单选按钮 – DaneSoul

0

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

如果您尝试使用单选按钮来模仿复选框,您只会混淆用户。

+0

确定如何检查,并取消好心给工作示例 – user1324068

+0

对于复选框,你不需要特殊的代码来取消它的点击 - 它的默认在所有浏览器中为他们行事! – DaneSoul

0

试试这个,

标记:

<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