如何使用jQuery获取按钮单击时所有选中复选框的ID

时间:2012-05-08 20:58:16

标签: php jquery html

<html>  
    <input type='checkbox' id='1' name='checkMr[]' value='1' />       
    <input type='checkbox' id='2' name='checkMr[]' value='2' />            
    <input type='checkbox' id='3' name='checkMr[]' value='3' />         
    <input type='checkbox' id='4' name='checkMr[]' value='4' />        

    <a id="savedoctorschedule" style="float: right;" class="clyes clbutton clbtnSave">Save</a>       
</html> 

<script>
$j("#savedoctorschedule").bind("click", function () { 
    $j.ajax({
        url: "schedulemr.php",
        type: "post",
        data: { schmrid: $j("#sel_mr").val(), 
        schedocid: $j("#checkMr[]").val(), 
        schedate: $j("#date1").val(), },
        success:function(response){         
        }
</script>

<?php
include '../includes/include.php';
$schmrid = $_POST['sel_mr'];
$schedate = $_POST['date1'];
$schedocid = $_POST['checkMr'];
foreach($schedocid as $a => $b)
{
   $sql="INSERT INTO tbl_mr_schedule(doctor_idscheduled_date) 
   VALUES ('".$schedocid[$a]."','".$schmrid."','0','".$date."','".$schedate."');";
   mysql_query($sql) or die(mysql_error());
}
header('Location:../visitplan/');
?>

我希望使用jQuery检查所有复选框的ID;复选框可以是n个数字。我想在数据库中插入选中的复选框值,其中记录数将取决于选中复选框的数量。这将使用PHP作为服务器端脚本。

我该如何解决?

4 个答案:

答案 0 :(得分:3)

尝试以下,

$(':checkbox[name="checkMr[]"]:checked') //returns you the list of selected checkbox

那么你可以,

var selectedID = [];
$(':checkbox[name="checkMr[]"]:checked').each (function () {
    selectedID.push(this.id);
});

DEMO

答案 1 :(得分:1)

由于多种原因,您的文档无效。跳过明显的(缺少doctype / <body> / etc),id属性可能不以数字开头; id="1"无效。您必须使用id="check-1"之类的非数字前缀,或将ID指定为复选框的value

修复此问题后,您可以使用以下内容查找所有选中的复选框,并检索其值(或您选择使用的属性)。

$("input:checked").map(function () { return $(this).val(); });

答案 2 :(得分:1)

$("#savedoctorschedule").click(function(e){
    e.preventDefault();
    var sList = "";
    $('input[name="checkMr[]"]').each(function () {
        if(this.checked){
            sList += "(" + $(this).attr('id') + ")";
        }
    });
    alert(sList);
    }
);​

请找到FIDDLE

答案 3 :(得分:0)

ID不能以数字开头。一旦您更新了ID,请使用attr(&#39; value&#39;)或.val()来检索与输入相关联的值。