【问题标题】:radio button onclick return false remove the checked from the other radio button单选按钮 onclick return false 从另一个单选按钮中删除选中
【发布时间】:2019-05-24 17:37:44
【问题描述】:

我有单选按钮。我想要单选按钮上的onClick 它会返回false。发生的事情是我更换的收音机没有经过检查,而且很好。但之前检查过的另一个单选按钮。也没有检查。 这里是代码:

function disableClick(e) {
  e.preventDefault();
  return false;
}
<input id="fmale" type="radio" name="gender" value="1" checked="checked" onclick="return disableClick(event);">
<input id="male" type="radio" name="gender" value="2" onclick="return disableClick(event);">

【问题讨论】:

  • 为什么?为什么要返回 false 并防止默认值,您想要的行为是什么。
  • 通过使用e.preventDefault();,您已永久禁用单选按钮上的任何操作

标签: javascript jquery radio-button


【解决方案1】:

addEventListener 可以帮到你

function disableClick(e) {
    e.target.checked = false; // clear current radio button
    e.preventDefault();
    return false;
}
document.getElementById("fmale").addEventListener("click",disableClick)
document.getElementById("male").addEventListener("click",disableClick)
<input id="fmale" type="radio" name="gender" value="1" checked="checked" />
<input id="male" type="radio" name="gender" value="2">

【讨论】:

  • 这使得 OP 的原始代码更干净,但不会改变功能或解决问题。
  • 添加“e.target.checked”清除当前单选按钮
【解决方案2】:

'e.preventDefault()' 和 'return false' 阻止下一个单选按钮被选中。

【讨论】:

  • 这并不能解决 OP 的问题,这只是一个评论。
  • @AnonymousSB 不清楚他想要达到什么目的。另外,我无法添加评论。
【解决方案3】:

e.preventDefault 不会阻止将单选按钮的属性checked 设置为true。您可以console.log(e.target.checked) 看到它已设置为true,即使e.preventDefault() 阻止它在视觉上显示为已选中。

下面的演示允许将另一个单选按钮自动设置为checked = false,然后将当前单击的单选按钮也设置为false

我不知道你为什么要这样做,但你去吧

解决方案

$('#fmale').click(function(e) {
  e.target.checked = false;
});

$('#male').click(function(e) {
  e.target.checked = false;
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="fmale" type="radio" name="gender" value="1" checked="checked">
<input id="male" type="radio" name="gender" value="2">

【讨论】:

  • 对我来说也是如此,就像我发送的代码一样,删除了我的第一个选择,而第二个选择 - 不这样做
  • @rikush 我不明白你想要什么。您想在选择取消选择的单选按钮时取消选择所有单选按钮?或者是其他东西? “和第二个选择 - 不做”是什么意思?
猜你喜欢
  • 1970-01-01
  • 2011-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-24
  • 2010-10-14
  • 1970-01-01
相关资源
最近更新 更多