0

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

<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 脚本:

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());


    } 


    });

});

任何建议将不胜感激。

4

1 回答 1

0

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

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() )
       }
   })
于 2013-03-02T09:25:46.180 回答