从复选框中获取值

时间:2013-03-02 09:13:43

标签: jquery checkbox

我有复选框,其值从数据库中填充。我可以选择并取消选中所有复选框,但我无法获取单个复选框的值。这是我到目前为止所做的,  对于从数据库填充的复选框:

<form>

<br>
<input type="checkbox" id="All"> <b>Select/DeSelect All</b><br>

<?php
$sql = 'SELECT Subject_Category from {extdb_subjects} where level=1 ';
$res = db_query($sql);

foreach ($res as $row)
{
 echo "<input type='checkbox' id='sub_names' name='{$row->Subject_Category}'
    value='{$row->Subject_Category}'";

  echo ">{$row->Subject_Category}";
  echo "<br>";
}
?>

</form>

JQuery脚本,用于选择de选中所有复选框并单独显示选中的复选框:

jQuery(function(){

 jQuery('#All').change(function() {


    var checkboxes = jQuery(this).closest('form').find(':checkbox');

    if(jQuery(this).is(':checked')) {
        checkboxes.attr('checked', 'checked');


    } else {
        checkboxes.removeAttr('checked');

    }


    });

  jQuery('#sub_names').change(function() { //This is not able to get the values

    if(jQuery(this).is(':checked')) {
      alert(jQuery("input[type=checkbox]:checked").val());


    } 


    });

});

任何建议都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

这对我来说似乎很奇怪。您检查是否选中了 this ,然后尝试获取一些任意复选框值。试试这个。

jQuery('#sub_names').change(function() { //This is not able to get the values
  if(jQuery(this).is(':checked')) {
    alert(jQuery("input[type=checkbox]:checked").val());
  } 
}

尝试:

   jQuery('input[type=checkbox]').click(function(){
      if(jQuery(this).is(':checked')){
         console.log( $(this).val() )
       }
   })