Javascript JQuery.prop函数无法取消复选框

Javascript JQuery.prop函数无法取消复选框,javascript,jquery,html,jquery-mobile,checkbox,Javascript,Jquery,Html,Jquery Mobile,Checkbox,我尝试了很多我在这里找到的想法,当一个不同的复选框被选中时,取消选中一个复选框,但没有一个是有效的 现在我有: $("#chkBox1").click(function () { if ($(this).is(":checked")) { $('#chkBox2').prop('checked', false); } }); …但没有结果,chkBox2仍处于检查状态 以下是HTML中的复选框: <input type="checkbox" name="art" id="chkBo

我尝试了很多我在这里找到的想法,当一个不同的复选框被选中时,取消选中一个复选框,但没有一个是有效的

现在我有:

$("#chkBox1").click(function () {
 if ($(this).is(":checked")) {
  $('#chkBox2').prop('checked', false); }
});
…但没有结果,chkBox2仍处于检查状态

以下是HTML中的复选框:

<input type="checkbox" name="art" id="chkBox1" data-mini="true" data-theme="c" />


我的代码中一个可能的区别是,复选框仅在使用href单击按钮时添加到页面中…复选框在HTML中(不是用Javascript创建的)…但在单击按钮之前不可见。这可能是问题的一部分吗?还是我错过了什么?另外,我正在使用JQuery Mobile。

您正在检查
,并更改
chkBox2

if ($(this).is(":checked")) {
     $('#chkBox2').prop('checked', false); }
请尝试以下方法:

if ($('#chkBox2').is(":checked")) {
     $('#chkBox2').prop('checked', false); }
或者简单地说:

$('#chkBox2').prop('checked', false);

您需要在更改其“
.prop
”后使用
.checkboxradio('refresh')
刷新它


    • 对不起,我应该一直读下去

      这似乎起到了作用:

        $('#chkBox1').checkboxradio('refresh');
      
      …但我不太清楚为什么,这是JQuery Mobile独有的吗?

      Html

      <input type="checkbox" name="art" id="chkBox1" data-mini="true" data-theme="c" />
      <input type="checkbox" name="art2" id="chkBox2" data-mini="true" data-theme="c" checked="checked" />
      

      这里的工作示例

      在JQM中为复选框使用ID可能是个坏主意(由于JQM中处理页面缓存的方式,在JQM中通常使用ID不是很安全)。很可能没有选择正确的元素。您可以将
      $(this).is(“:checked”)
      更改为
      $(this).prop(“checked”)
      甚至
      this.checked
      。这会更直接,但不会影响结果。@KevinB哦,是的。。没有注意到是jqm-这实际上是指#chkbox1这应该是对下面答案的评论。。但是是的,如果你看了这些文档,就会发现你需要打电话给refreshps,我看到其他人在同一时间以同样的方式回答了这个问题+这是医生给你的答案为什么有效谢谢,我在你打字的时候就想到了这个答案!这是一款合适的jQuery手机way@Gajotres你还是一个好朋友
      <input type="checkbox" name="art" id="chkBox1" data-mini="true" data-theme="c" />
      <input type="checkbox" name="art2" id="chkBox2" data-mini="true" data-theme="c" checked="checked" />
      
      (function ($) {
      $(document).ready(function () {
          $("#chkBox1").click(function () {
              if ($(this).is(":checked")) {
                  $('#chkBox2').prop('checked', false);
              }
          });
      });
      })(jQuery);