获取复选框是否被选中或不在jquery / ES6中
以下是我试图检索复选框是否被点击的jQuery代码。 我用过is
和prop
但总是返回false
并在控制台中undefined
。 让我知道我在这里做错了什么。
另外,让我知道更好的方式来处理复选框的值是针对复选框上的click
或change
事件(目前我正在监听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