获取复选框是否被选中或不在jquery / ES6中

以下是我试图检索复选框是否被点击的jQuery代码。 我用过isprop但总是返回false并在控制台中undefined 。 让我知道我在这里做错了什么。

另外,让我知道更好的方式来处理复选框的值是针对复选框上的clickchange事件(目前我正在监听click事件)。

jQuery代码 -

const $document = $(document);
$document.ready(() => {
    $("input[type='checkbox']").on('click', () => {
        console.log("Checked Value 'is' :: ", $(this).is(':checked'));
        console.log("Checked Value 'prop' :: ", $(this).prop('checked'));
    })
})

HTML代码 -

<form name="myForm" id="#myForm">
    <div>
        <p><input type="checkbox" name="accept-t-and-c" /> I accept terms and conditions</p>
    </div>
    <div>   
        <button type="submit" name="submit">Submit</button>
    </div>  
</form>

JSFIDDLE - https://jsfiddle.net/82Lz1c8w/4/

编辑 -在进入问题之前,很少有人会将其标记为重复,但在这种情况下,他们所指的解决方案与下面提到的链接无关,因为我正在使用箭头函数并更改上下文。 请阅读支持的答案。


使用正常功能。 当使用箭头的语法, this里面将是指封闭的上下文。 另外,使用change事件。

没有this绑定

$("input[type='checkbox']").on('change', function() {
    console.log("Checked Value 'is' :: ", $(this).is(':checked'));
    console.log("Checked Value 'prop' :: ", $(this).prop('checked'));
});

小提琴

$("input[type='checkbox']").on('change', function() {
  console.log("Checked Value 'is' :: ", $(this).is(':checked'));
  console.log("Checked Value 'prop' :: ", $(this).prop('checked'));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" name="accept-t-and-c" /> I accept terms and conditions</p>

尝试下面的代码:

 $("input[type='checkbox']").on('change', (e) => {
      console.log("Checked Value 'is' :: ", e.currentTarget.checked);
 })

如果您使用该语法,则需要将代码更改为

$document.ready(() => {
    $("input[type='checkbox']").on('click', (e) => {
        console.log("Checked Value 'is' :: ", $(e.target).is(':checked'));
        console.log("Checked Value 'prop' :: ", $(e.target).prop('checked'));
    })
})
链接地址: http://www.djcxy.com/p/55995.html

上一篇: Get if checkbox is checked or not in jquery/ES6

下一篇: is :checked not working while using Jquery 1.7