【问题标题】:How to prevent second click on radio button if it is already checked so that javascript event can be prevented如果已经选中单选按钮,如何防止第二次单击,以便可以防止 javascript 事件
【发布时间】:2013-03-12 20:50:11
【问题描述】:

如果已选中单选按钮,如何防止第二次点击,以便阻止javascript事件。

因为我在单选按钮上做很多事情

<input name="EnumEvent" type="radio" value="Open" onclick="show_event()"/>

javascript

function show_event()
{
    document.getElementById("radio-btns-div1").style.display="block";
    document.getElementById('invited').style.display="none";
    document.getElementById('invited').value = '';
    document.getElementById('invite_1').value='';
}

【问题讨论】:

  • 你的意思是点击后Disable单选按钮?
  • Fabrizio Calderan 现在看看代码。你会得到一个更好的主意

标签: javascript


【解决方案1】:

您可以使用更改事件而不是点击

<input name="EnumEvent" type="radio" value="Open" onchange="show_event()"/>

DEMO

【讨论】:

  • 这不会阻止用户选择另一个选项,然后可能会再次变回来。但它确实可以防止“双击”
  • @fredrik:到目前为止,我从问题中了解到,他只想阻止在单击选定的单选按钮时执行事件处理程序。
  • 你说得对,这就是问题所要求的。但是我看到很多问题的例子,提问的人事先并不完全知道可能会有后续问题。所以我认为值得一提。对于他在问题中写的内容,您的答案是 100% 正确的 - 但在 5 分钟内,当他尝试时,他可能会注意到他也希望用户无法按下任何选项。
【解决方案2】:

添加禁用属性

function show_event()
{
  document.getElementByName("EnumEvent").setAttribute("disabled", "disabled");
  ...
}

当/如果您希望允许用户选择另一个选项时,请不要忘记删除该属性。

【讨论】:

  • 这正是我需要的方向,我最终使用了这个代码:document.getElementsByName(radioName).forEach((radio)=&gt;{ radio.setAttribute("disabled", "disabled"); });
【解决方案3】:
var clicked = false;
$('input:radio.yourclass').click(function(event){
     if (clicked){
         event.preventDefault();
     }
     clicked = true;
});

【讨论】:

    【解决方案4】:
    function Clicked() {
    if (document.getElementById("radio-btns-div1").checked) {
    
    document.getElementById("radio-btns-div1").disabled = true;
    }
    

    参考Disable radio button according to selected choice

    【讨论】:

      猜你喜欢
      • 2016-02-10
      • 1970-01-01
      • 1970-01-01
      • 2017-05-30
      • 1970-01-01
      • 1970-01-01
      • 2016-02-12
      • 2016-08-16
      • 1970-01-01
      相关资源
      最近更新 更多