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

Posted

技术标签:

【中文标题】单击模态对话框按钮后如何取消选中该复选框?【英文标题】:How do I uncheck the checkbox after modal dialog button is clicked? 【发布时间】:2018-06-29 16:29:55 【问题描述】:

这是我的问题:

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

当用户单击复选框时,我需要显示警告消息。 然后显示一个模式对话框,用户可以在其中单击“我了解”和“取消” 单击“取消”按钮时,我想取消选中该复选框。

我尝试这样做:

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

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

【问题讨论】:

【参考方案1】:

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

对于 jQuery 1.6+:

.attr() 不推荐用于属性;使用新的.prop() 函数代替:

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

对于 jQuery

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

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

参考:https://***.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】:
    复选框的正确选择器是$('#chkImm') 使用prop 更改checked 状态。

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

【讨论】:

赞成,因为它是第一个正确答案,与下面的 @Eleazar 相比,大约相差 31 秒 @MuhammadOmerAslam :-)【参考方案3】:

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

尝试做:document.getElementById("chkImm").checked = false;

【讨论】:

【参考方案4】:

我用这个来显示模态:

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

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

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

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

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

【讨论】:

以上是关于单击模态对话框按钮后如何取消选中该复选框?的主要内容,如果未能解决你的问题,请参考以下文章

在深色页面上显示模态 DIV

回发后未调用模态对话框的 onshow

如何匹配单击按钮的位置及其模态对话框

vc++6.0如何实现在模态对话框编辑框中输入数据,单击确定按钮将数据添加到组合框按钮中!

通过调用 ASP.NET 按钮单击从 jQuery 模态对话框回发

java+selenium3模态框处理