为什么Checkbox没有取消选中jquery

时间:2016-09-25 04:42:13

标签: javascript jquery html checkbox

我需要取消选中一个复选框。它正在做所有事情,如提醒或删除div,但不取消选中复选框。我使用了attrprop方法。复选框id没问题。即使它没有在firebug控制台中显示任何错误。

$('html').on('click', '#inScopeDiv .remButton', function () {
      var currId = $(this).attr('id');
      var chkBoxId = "#chk"+currId;
      alert(currId);
      alert('#chk'+currId);
      $(chkBoxId).prop("checked", false);
      $(chkBoxId).attr("checked", false);
      $('#div'+ currId).remove();
      $('#inScopeActionDiv' + currId).remove();         
    });

HTML提供::

<c:forEach items="${data.inScope}" var="inScopeValues">
        <div class="col-md-12" style="background-color: snow;">
            <input class="inScope" type="checkbox" id="chk${inScopeValues.key}" name="chk + ${inScopeValues.key}" value="${inScopeValues.value}">
             ${inScopeValues.value}
        </div>  
        </c:forEach>

按钮&amp;复选框位于::&gt;

下方
<input class="inScope" type="checkbox" id="chkisc_2" name="chkisc_2" value="In Scope 2">

<button id="chkisc_1" type="button" class="btn btn-warning btn-sm remButton" title="Remove this item">Remove Item</button>

3 个答案:

答案 0 :(得分:1)

您应该使用prop()removeAttr()来实现此目标。希望它有所帮助!

&#13;
&#13;
var cb = $("#checkbox")

$('#button1').click(function() {
  cb.prop("checked", true)
})

$('#button2').click(function() {
  cb.removeAttr('checked')
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" id="checkbox" />This is a checkbox
<br />
<br />
<button id="button1">Check checkbox</button>
<br />
<br />
<button id="button2">Uncheck checkbox</button>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

您在更新的问题中显示的按钮有id="chkisc_1",然后在您的功能中,您可以将#chk添加到其开头,这意味着您正在寻找一个元素选择器"#chkchkisc_1"。同时,显然复选框有id="chkisc_2",虽然它似乎确实是在一个循环中创建的,所以也许还有一个_1(虽然这意味着你有多个具有相同id的元素,是无效的html)。

将按钮更改为id="isc_1",然后当您的JS添加#chk时,它会查找#chkisc_1

&#13;
&#13;
$('html').on('click', '#inScopeDiv .remButton', function () {
    var currId = $(this).attr('id');
    var chkBoxId = "#chk"+currId;
    $(chkBoxId).prop("checked", false);
    $('#div'+ currId).remove();
    $('#inScopeActionDiv' + currId).remove();         
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="inScopeDiv">

<input class="inScope" type="checkbox" id="chkisc_1" name="chkisc_1" value="In Scope 1" checked>
<button id="isc_1" type="button" class="btn btn-warning btn-sm remButton" title="Remove this item">Remove Item</button>

<input class="inScope" type="checkbox" id="chkisc_2" name="chkisc_2" value="In Scope 2" checked>
<button id="isc_2" type="button" class="btn btn-warning btn-sm remButton" title="Remove this item">Remove Item</button>
</div>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

let checkbox = document.querySelector("input");

checkbox.addEventListener("click",function(){
  console.log("Sorry ( ͡° ͜ʖ ͡°)");
  this.checked = false;
});
<input type="checkbox" />