嘿,我想知道在检查时如何获取复选框的ID。
这是我的HTML最初看起来的样子:
<div class="check_filter">
<div id="filter">
<input type="checkbox" id="check1" /><label for="check1">Marketing</label>
<input type="checkbox" id="check2" /><label for="check2">Automotive</label>
<input type="checkbox" id="check3" /><label for="check3">Sports</label>
</div>
</div><!-- End check_filter -->
我假设jQuery看起来像这样:
$(document).ready(function() {
$(":checkbox").click(function(){
var id = $(this).attr('id');
$.post("index.php", { id: id });
//return false to ensure the page doesn't refresh
return false;
});
});
我正在尝试获取已检查的项目ID,然后在mysql查询中发布该ID以从数据库中获取id的结果。
感谢您提供任何帮助。
答案 0 :(得分:16)
您可能想要change
事件,例如:
$(function() {
$(":checkbox").change(function(){
$.post("index.php", { id: this.id, checked: this.checked });
});
});
每当复选框发生变化时都会发布,并让PHP方知道ID以及是否已选中。
答案 1 :(得分:7)
您提供的jQuery工作正常吗?您应该删除已选中复选框的return false
到节目。
编辑:$.post()用于异步请求(AJAX技术),因此不会刷新页面。
编辑2:您可能还想查看复选框是否已选中(而不仅仅是已点击它):
$(document).ready(function() {
$(":checkbox").click(function(){
var id = $(this).attr('id');
var isChecked = $(this).attr('checked'));
$.post("index.php", { id: id, isChecked: isChecked });
});
});
答案 2 :(得分:2)
您可以使用:checkbox
选择器,然后检查DOM元素的id
和已检查属性,如下所示:
var id = $(this).find(":checkbox")[0].id;
var isChecked = $(this).find(":checkbox")[0].checked;
答案 3 :(得分:1)
你可以更好地使用jQuery get而不是post。它允许您处理请求的输出:http://api.jquery.com/jQuery.get/
示例:
$(document).ready(function() {
$(':checkbox').click(function(){
var id = $(this).attr('id');
var isChecked = $(this).attr('checked'));
$.get(
'getcheckbox.php',
{ id: id, isChecked: isChecked },
function(data) {
//return value in getcheckbox.php and use it in on complete function
var result = data;
}
);
});
});
答案 4 :(得分:0)
为什么我只需要这个复选框的名称,但$(this)才能访问值
$('input:checkbox').change( function() {
console.log("here i am: " + this.name + " value = " + $(this).val() );
}
);