6

我尝试了许多我在这里发现的想法,以取消选中复选框,但没有任何功能,但是没有一个正在工作...

现在我有:

$("#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。

4

4 回答 4

12

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

演示

// Check #chkBox2 by default
$('#chkBox2').prop('checked', true).checkboxradio('refresh')

// Uncheck #chkBox2 when #chkBox1 is checked
$('#chkBox1').on('click', function () {
 if ($(this).is(':checked')) {
  $('#chkBox2').prop('checked', false).checkboxradio('refresh');
 }
});
于 2013-03-29T15:46:53.363 回答
1

对不起,我应该继续阅读!

这似乎可以解决问题:

  $('#chkBox1').checkboxradio('refresh');

..但我不完全确定为什么,这是 JQuery Mobile 独有的东西吗?

于 2013-03-29T15:53:49.913 回答
0

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" />

jQuery:

(function ($) {
$(document).ready(function () {
    $("#chkBox1").click(function () {
        if ($(this).is(":checked")) {
            $('#chkBox2').prop('checked', false);
        }
    });
});
})(jQuery);

这里的工作示例http://jsfiddle.net/SwmN6/75/

于 2013-03-29T15:58:04.880 回答
-1

您正在检查this并更改chkBox2

if ($(this).is(":checked")) {
     $('#chkBox2').prop('checked', false); }

试试这个:

if ($('#chkBox2').is(":checked")) {
     $('#chkBox2').prop('checked', false); }

或者简单地说:

$('#chkBox2').prop('checked', false);
于 2013-03-29T15:40:59.597 回答