【问题标题】:jQuery - radio button click()jQuery - 单选按钮单击()
【发布时间】:2023-03-05 14:15:01
【问题描述】:

是否可以在单击单选按钮时禁用正在执行的标准操作? (没有“禁用”属性)

所以当我点击特定的单选按钮时,什么也没有发生。尝试了 .unbind('click') 但似乎不起作用。

提前求助

【问题讨论】:

    标签: javascript jquery forms


    【解决方案1】:

    你可以使用event对象暴露的preventDefault()方法:

    $("input:radio").click(function(e) {
        e.preventDefault();
    });
    

    编辑:不幸的是,这似乎并没有阻止浏览器检查首先单击的单选按钮(jsFiddle 处于“紧急只读”模式,所以我无法发布演示现在)。

    【讨论】:

    • 我不相信它是“jQuery 的”,它是内置在事件处理程序的语言中的。
    • @jondavidjohn,是的,它是 DOM 级别 2 的一部分。答案已更新,谢谢 :)
    【解决方案2】:

    这应该可行:

    $('#myradio').click(function(e) {
      e.preventDefault();
      return false;
    });
    

    【讨论】:

    • preventDefault()的原因是什么?据我测试,return false; 在这种情况下就足够了。
    【解决方案3】:

    试试这个。

    $('input:radio').click(function(e){
       e.preventDefault();
    });
    

    Demo

    【讨论】:

      【解决方案4】:

      你可以试试这个,这将停止传播:

      $("#my-radio-btn").live("click", function(e){
          e.preventDefault();
      });
      

      【讨论】:

        【解决方案5】:

        实际上,当您第一次单击单选时,已设置 checked 属性,因此它在浏览器中显示为已选中(第一次)。

        所以这段代码可以解决问题

        [我正在使用 jquery 库]

        $('input:radio').click(function(){
        $(this).prop('checked',false);
        e.preventDefault();
        return false;
        });
        

        【讨论】:

          【解决方案6】:

          你需要在你给jQuery click的函数中使用event.disableDefault。

           $("#my_element").click(
          function(event) {
          event.preventDefault();
          // the rest of your code goes here
          }
          );
          

          【讨论】:

          • 抱歉(现在也有点晚了),我的意思是 preventDefault(),你可以在我提供的代码中看到。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-09-25
          • 1970-01-01
          • 2011-06-05
          • 2013-09-23
          • 2013-12-27
          • 2018-12-18
          • 2015-11-17
          相关资源
          最近更新 更多