【问题标题】:Set input:radio by jQuery then check checked by clicking通过 jQuery 设置 input:radio 然后通过单击进行检查
【发布时间】:2013-03-26 04:39:19
【问题描述】:

HTML:

<label><input type="radio" name="type">Stackoverflow</label>
<label><input type="radio" name="type">Google</label>

jQuery :

$("input:radio").eq(0).attr('checked',true); // Set 1st input checked by jQuery

$("input:radio:not(:checked)").on("click", function(){
      console.log("yes!");
});

演示: http://jsbin.com/onayec/1/edit

看起来 HTML attr checked="checked" 在单击另一个 input:radio 时不会删除

我只是想看看有没有点击input:radiochecked

【问题讨论】:

    标签: javascript jquery input checkbox radio-button


    【解决方案1】:

    我认为使用change 事件而不是单击会在未选中单选按钮单击时触发该事件。

    $("input:radio").on("change", function(){
          console.log("yes!");
    });
    

    【讨论】:

      【解决方案2】:

      你也可以试试这个:

      $('input:radio').click(function () {
          if ($(this).is(':checked')) {
              // do something
              alert('Ckecked');
          }
      });
      

      【讨论】:

      • 再试一次,看到输入标签没有关闭好。关闭它们&lt;/input&gt; 它将起作用
      • 什么?我们要关闭&lt;input&gt; 标签吗? (谈论 HTML)
      • 你的演示:我点击时得到警报
      • 是的,我们确实需要关闭输入标签。在 jsbin 中尝试一次
      • 但是您的示例 jsfiddle.net/n2dxg 关闭 &lt;input&gt;tag 不起作用,始终保持警报(单击另一个并自行单击)
      【解决方案3】:

      事件绑定到元素而不是它们的属性,即,当您选择一个元素时,处理程序绑定到该元素,当属性更改时处理程序不会更新,如果您想将点击处理程序绑定到输入元素不是checked 你应该使用事件委托。

      但是,对于单选/复选框输入元素来说,这不是一个很好的例子,您需要的是一个简单的change 事件处理程序。重点是展示事件如何绑定到元素。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-05
        • 2016-04-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多