javascript - 确认对话框取消后输入选中的属性不起作用

标签 javascript jquery

我有一个复选框,如果未选中,我想确认用户是否打算这样做。

我正在监听 on.change 事件并使用 confirm() 作为对话框。如果用户单击“取消”,我有重置复选框的代码。但是,它不服从它。 'checked="checked"' 属性按预期放置在那里,但它没有显示为已选中。

这是一个 JSFiddle 说明它: https://jsfiddle.net/0tvzLbgk/9/

下面是代码。

$('#box').on('change', 'input', function() {
  var $me = $(this);

  if (this.checked) {
    // Item has been checked, do nothing
  }
  else {
    // Item has been unchecked

    // Make sure it was not an accident
    var confirmReset = confirm("Reset checkbox?");

    if (confirmReset == true) {
      // Okay, reset
    }
    else {
      // Mistake, mark as checked again
      $me.attr('checked', 'checked');
    }
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="box">
  <input type="checkbox" />
</div>

有谁知道为什么它不遵循 checked 属性?

最佳答案

使用 .prop 而不是 .attr

$me.prop('选中', true);

关于javascript - 确认对话框取消后输入选中的属性不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41021818/

相关文章:

javascript - 根据菜单中的选择更改值

jquery - 将 jQuery 添加到下划线 (_s) WordPress 主题的最佳方法是什么?

javascript - 几种基础展示模态需要不同的背景

javascript - 为什么vue的方法不行?

javascript - CKEditor 获取同一行的前面文本

javascript - Karma/PhantomJS 浏览器启动但控制台不显示测试结果

javascript - 如何创建可以链接在一起的函数?

javascript - 如何使用 http 传递整个 URL,例如 "http://www.facebook.com"作为 Node/express "/:param"的参数?

javascript - 数据类型 jsonp 和 JSON 之间的区别

javascript - 单击功能的多选框