【问题标题】:Jquery, How to unselect all radio button in radio groupJquery,如何取消选择单选组中的所有单选按钮
【发布时间】:2012-08-16 19:06:55
【问题描述】:

有人知道如何取消选择单选组中的所有单选按钮吗?

HTML:

<div id="emptimfields">
              <label id="lbl_emptim">How regulary do you employ people to help cultivate your land? </label><br/><br/>

             <fieldset data-role="controlgroup" data-type="vertical" id="emptim">

              <input name="emptim" id="radio1" value="fromtimetotime" type="radio" openmrs-valuecoded="" />
              <label for="radio1"> From time to time </label>

              <input name="emptim" id="radio2" value="allthetime" type="radio" openmrs-valuecoded="" />
              <label for="radio2">All the time</label>

              <input name="emptim" id="radio3" value="dontknow" type="radio" openmrs-valuecoded="" />
              <label for="radio3"> Don't know </label> 
            </fieldset>
        </div>

JQuery 端:

$('input:radio[name=emptim]:checked').prop('checked', false); // doesn't work 

我当然缺少一些基本的东西,但我不知道问题出在哪里。

首先,我检查是,然后检查第二个无线电组的值:

然后,我选中否以隐藏第二个无线电组:

然后,如果我点击下一步,我会得到我检查过的值(但我以前没有检查过,所以这里我不想要警报,我希望单选按钮“不时”是未选中):

最后,如果我回来,什么都不会发生:

【问题讨论】:

  • 总是怀疑选择器。 $('input:radio[name=emptim]:checked') 一定能找到元素吗?
  • 在这里工作jsfiddle.net/NFtVm(chrome beta)
  • 是的,如果我这样做了 alert($('input:radio[name=emptim]:checked').val()); ,我选择了单选按钮的值。
  • 在 FF 中也可以正常工作 jsfiddle.net/szatc/1
  • $('input[type=radio]:checked').prop('checked', false);

标签: jquery html jquery-mobile jquery-selectors


【解决方案1】:

我制作了一个非显示单选按钮并通过我的 PHP 调用它。您可以使用 jquery 来选择隐藏按钮。我无法让解决方案在这里工作,所以我使用了一些 PHP,因为我必须从数据库中调用值。为了帮助任何人,我使用的解决方案是:

<input type="radio" id="test" value="" class = "timescale" name="timescale_radio_buttons" style="display: none" <?php $x = ((empty($gigObject->getTimescale())) || ($gigObject->getTimescale() == 'Blank')) ? 'checked="checked"' : ''; echo $x; ?>>

【讨论】:

    【解决方案2】:

    这个道具对我不起作用,但这很有效:

    ('input:radio[name="RadioName"]').each(function () { $(this).attr('checked', false); });
    

    【讨论】:

      【解决方案3】:

      应该这样做。请注意最后的刷新选项以强制更新控制组。

      此方法的另一个好处是它按名称定位特定无线电组,而不是页面上的所有无线电控件。

      $('input:radio[name=emptim]:checked').prop('checked', false).checkboxradio("refresh");
      

      【讨论】:

      • @AlessandroLallo 这是一个关于 JQuery Mobile 的问题!!!请检查问题标签并删除反对票。谢谢。
      • 标题无关紧要,绝大多数帖子根本没有提到平台。标签是形成答案的相关细节。
      【解决方案4】:
      $('input:radio[name=indicatorType]').each(function () { $(this).prop('checked', false); });
      

      使单选组的整个单选按钮“未选中”的替代解决方案(上述代码示例的“indicatorType”)。

      【讨论】:

        【解决方案5】:

        你可以给他们一个类名并尝试:

        $('.classname').prop('checked', false);
        

        当您使用比 1.6 更旧的 jQuery 版本时,它必须是:

         $('<selector>').attr('checked', false);
        

        编辑:

        调用方法.checkboxradio("refresh");也对我有用。

        【讨论】:

          猜你喜欢
          • 2013-05-22
          • 2011-07-17
          • 1970-01-01
          • 2016-02-10
          • 2011-10-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多