<!DOCTYPE html>
<html>
<head>
<meta charset='UTF-8'>
<title>checked</title>
<script type="text/javascript" src='jquery-2.2.0.min.js'></script>
</head>
<body>
<input type='checkbox' id='input'>
</body>
<script type="text/javascript">
$('input').click(function(){
console.log($('#input').checked)
})
</script
为什么我不管这个复选框有没有选中 打印出来的都是undefined呀?选中的时候不是应该打印true么?求指教?怎么才能监听checkbox有没有选中呢?
$('#input').get(0)或者$('#input')[0]
除了这种方法呢?这样的话要是页面上有多个checkbox框怎么办呢?
@小码农雯: 你的多个checkbox,他们用的id不一样.有多个的时候可以遍历
@小码农雯: 那就是你选择器,选的问题了。多个checkbox 的话可以 $(":checked").each遍历,多看看jquery api文档, 很多问题在api中就能找到答案
@小徐只是个搬砖的: 能demo一个看看么?
<!DOCTYPE html> <html> <head> <meta charset='UTF-8'> <title>checked</title> <script type="text/javascript" src='jquery-2.2.0.min.js'></script> </head> <body> <form> <input type='checkbox' > <input type='checkbox' > <input type='checkbox' > <input type='checkbox' > <input type='checkbox' > </form> </body> <script type="text/javascript"> </script> </html>
@_tom: 可是遍历的话就没有触发事件了哇
@小码农雯: 你现在最终的想要实现什么功能?
@_tom: 一开始是checkbox的原始状态,然后我在页面上选中几个checkbox,然后我想拿到这几个选中的checkbox
@小码农雯: $(":checkbox")
这就是拿到所有的选中的checkbox
@_tom: 恩 但是我只想拿到checked的那几个checkbox
@小码农雯: $("input:checked")
@_tom: 这个只能拿到页面上初始状态是checked的checkbox,但是我现在是初始状态都是没有选中的,是用户自己选中然后我来监听用户选中了那几个checkbox 是这样的
@小码农雯:
你结合一下$('input:checked')
<!DOCTYPE html> <html> <head> <meta charset='UTF-8'> <title>checked</title> <script type="text/javascript" src='http://cdn.bootcss.com/jquery/1.11.2/jquery.min.js'></script> </head> <body> <form> <input id="checkbox1" type='checkbox' > <input id="checkbox2" type='checkbox' > <input id="checkbox3" type='checkbox' > <input id="checkbox4" type='checkbox' > <input id="checkbox5" type='checkbox' > </form> </body> <script type="text/javascript"> $(":checkbox").on("change",function(){ var $checkbox = $(this); console.log($checkbox.attr('id')); }); </script> </html
@_tom: 感谢感谢
这是jQuery的对象,
console.log($('#input')[0].checked)
试试
这样的话我页面上有多个checkbox就不好使了 我要是页面上有多个checkbox,然后我想监听里面哪几个checkbox是选中状态
@小码农雯: 你要的监听是怎么监听,是每个checkbox 每选中一次都响应一下还是怎样
还是 在特定的响应方法中获取有checkbox的checked状态?
@小徐只是个搬砖的: 就是页面上有几个checkbox 然后你随便在页面上选中几个 然后就是监听到是哪几个checkbox是选中状态 这样子
$('#input').click(function(){
console.log($('#input').attr('checked'))
}
用attr 或prop试试吧,本人没测试过
是的 用prop()是有效的 谢谢
@小码农雯: 那就好,一般这种问题直接找前端工程师就行了,哈哈……
@让我发会呆: 哈哈 所以就来这里找前端工程师了
@小码农雯: 其实我是后台开发 = =!
$("input[type=checkbox]").each(function () {
console.log($(this)[0].checked);
})
<input type='checkbox' name='mes' value='1'/>
<input type='checkbox' name='mes' value='2'/>
<input type='checkbox' name='mes' value='3'/>
<input type='checkbox' name='mes' value='4'/>
<input type="button" id="sub" />
$("input:button").click(function () {
text = $("input:checkbox[name='mes']:checked").map(function (index, elem) {
return $(elem).val();
}).get().join(',');
});
$("#sub").click(function () {
console.log(text);
})
最后打印出来的就是你选中的值。
谢谢 感谢
是否选中,建议用$("").prop("checked")
谢谢
要做全选功能?
哦 不是 是监听页面的checkbox与哪些是checked