【问题标题】: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') 放在函数内 - 它被调用,但复选框没有被取消选中...请参阅上面链接中的小提琴。

【问题讨论】:

    标签: javascript jquery twitter-bootstrap checkbox


    【解决方案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://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】:
      1. 复选框的正确选择器是$('#chkImm')
      2. 使用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
        

        【讨论】:

          猜你喜欢
          • 2020-04-05
          • 2013-06-06
          • 1970-01-01
          • 2013-06-08
          • 1970-01-01
          • 1970-01-01
          • 2014-05-23
          • 2016-10-18
          • 2011-08-25
          相关资源
          最近更新 更多