获取复选框的ID? - jQuery

时间:2010-07-29 15:05:52

标签: jquery checkbox

嘿,我想知道在检查时如何获取复选框的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的结果。

感谢您提供任何帮助。

5 个答案:

答案 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() );
        }
    );