首页 > 解决方案 > 显式 .trigger("click") 未设置为 true jquery

问题描述

在我的 js 文件中,当复选框上发生“单击”事件时触发一个函数,并在该单击上检查哪些值被“选中”并选择这些值。我正在通过类似 :: 的代码进行点击,$('#id').trigger("click"); or $('#id').click()在这种情况下,调用“点击”时触发的函数,但是当它检查时if($('#id').checked),它返回 false,并且永远不会调用“if-body”。

当我触发单击复选框时,为什么该元素的检查未设置为 true?

标签: javascriptjqueryjquery-uidomcheckbox

解决方案


因为$('#id')没有checked财产。$('#id').checked也是如此undefined。您可以看到,即使单击复选框本身控制台undefined

$('#id').on('click', function() {
  console.log($('#id').checked);
});
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<input id="id" type="checkbox" />

有一些方法可以检查复选框是否被选中。

$('#id').on('click', function() {
  console.log(
    $('#id').is(':checked'),
    $('#id').get(0).checked,
    $('#id').prop('checked')
  );
});
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<input id="id" type="checkbox" />

并用按钮

$('#id').on('click', function() {
  if ($('#id').is(':checked')) {
    console.log('checked!!')
  }
});

$('button').on('click', function() {
  $('input').trigger('click');
})
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<input id="id" type="checkbox" />
<button>trigger check</button>


推荐阅读