单击模态对话框按钮后,如何取消选中该复选框?

时间:2018-01-20 15:38:53

标签: javascript jquery twitter-bootstrap checkbox

这是我的问题:

这里小提琴: https://www.bootply.com/jMryRDRZNT

当用户点击复选框时,我需要显示警告消息。 然后会显示一个模态对话框,用户可以点击“我理解'和'取消' 当'取消'单击按钮我想取消选中该复选框。

我尝试这样做:

$('#btnModalCancel').click(function() {
    $('chkImm').attr('checked', false);
});

也试过' prop'而不是attr - 仍然没有工作。在显示对话框后,似乎有些东西阻止了复选框的更改。 我在函数中放置了console.log(' test') - 它被调用,但是复选框没有被取消选中...请参阅上面链接中的小提琴。

4 个答案:

答案 0 :(得分:1)

  1. 正确的复选框选择器为$('#chkImm')
  2. 使用prop更改checked州。
  3. $('#chkImm').prop('checked', false);
    

答案 1 :(得分:1)

chkImm的选择器错误,请使用#chkImm

对于jQuery 1.6+:

对于属性,不推荐使用

.attr();使用新的.prop()函数代替:

$('#myCheckbox').prop('checked', true); // Checks it
$('#myCheckbox').prop('checked', false); // Unchecks it

对于jQuery< 1.6:

要选中/取消选中复选框,请使用属性checked并更改该属性。使用jQuery,您可以:

$('#myCheckbox').attr('checked', true); // Checks it
$('#myCheckbox').attr('checked', false); // Unchecks it

参考: https://stackoverflow.com/a/17420580/1715121

$('#chkImm').on('change', function() {
  if ($(this).is(':checked')) {
    $("#myModal").modal({
      backdrop: 'static',
      eyboard: false
    });
  }
});

$('#btnModalCancel').click(function() {
  $('#chkImm').attr('checked', false);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />

<div class="container">
  <form class="form">
    <input id="chkImm" type="checkbox"><label>Turn on</label>
  </form>
</div>


<div id="myModal" class="modal">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title">Предупреждение, вы уверены!</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                                <span aria-hidden="true">×</span>
                            </button>
      </div>
      <div class="modal-body">
        <p>Блаблабла</p>
      </div>
      <div class="modal-footer">
        <button type="button" id="btnModalAgree" class="btn btn-warning">Я уверен, и хочу продолжить</button>
        <button type="button" id="btnModalCancel" class="btn btn-secondary" data-dismiss="modal">Отмена</button>
      </div>
    </div>
  </div>
</div>

答案 2 :(得分:0)

更新了您的代码:https://www.bootply.com/GuRVklMhIa#

尝试:document.getElementById(“chkImm”)。checked = false;

答案 3 :(得分:0)

我已经用这个展示了模式:

$('#myCheckbox').attr("checked", "checked"); 

但是如果您通过以下方式隐藏模态,则它将不起作用:

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

为了正确显示和隐藏,我和我在“显示和隐藏”期间都使用了PROP方法。

$('#myCheckbox').prop('checked', false); //To Hide
$('#myCheckbox').prop('checked', false); //To Show