获取复选框ID并将其附加到文本框,并以逗号分隔

时间:2014-02-07 08:27:19

标签: javascript jquery html

我有以下代码。

我只想要prescriptionid div标签的所选复选框的ID。

我编写了jQuery代码但是没有得到正确的输出。 jquery代码如下所示。我想将选中的复选框ID附加到我隐藏的文本框中。

<div class="form-group" id="prescriptionid">
    <!-- <label for="cid" class="col-lg-2 col-sm-2 control-label">Patient ID</label> -->
    <div class="col-lg-10">
        <% for (int i=0 ; i < testpre.size(); i++) { if(testpre.get(i).getTest_prescription_id()<11) { %>
            <input type="checkbox" name="chk<%=testpre.get(i).getTest_prescription_id()%>" id="<%=testpre.get(i).getTest_prescription_id()%>" value="<%=testpre.get(i).getTest_prescription_name() %>">
            <%=testpre.get(i).getTest_prescription_name() %>
                <br>
                <% } else { %>
                    <input type="checkbox" name="chk<%=testpre.get(i).getTest_prescription_id() %>" id="<%=testpre.get(i).getTest_prescription_id()%>" value="<%=testpre.get(i).getTest_prescription_name() %>" class="diab">
                    <%=testpre.get(i).getTest_prescription_name() %>
                        <br>
                        <% } %>
                            <% } %>
    </div>
</div>

jQuery代码

$(document).ready(function () {
    var someObj = {};
    someObj.chkArray = [];
    $("#prescriptionid").click(function () {


        var $this = $(this);
        someObj.chkArray.push($this.attr("id"));
        alert("Handler for .click() called.");
        alert("GRANTED: " + someObj.chkArray);
    });
});

3 个答案:

答案 0 :(得分:0)

试试这个:

$(document).ready(function () {
    var someObj = {};
    someObj.chkArray = [];
    $("#prescriptionid input[type=checkbox]").click(function () { // to target the checkbox i added input[type=checkbox]
        someObj.chkArray.push(this.id); // this.id is enought, no need for $(this).attr('id')
        alert("Handler for .click() called.");
        alert("GRANTED: " + someObj.chkArray[0]); // I don't think you need a array, but anyway to show in the alert I added [0]
    });
});

答案 1 :(得分:0)

一个简单的解决方案是每次从源

构造checked数组
$(document).ready(function () {
    var someObj = {};
    someObj.chkArray = [];
    var $checks = $('#prescriptionid input[type="checkbox"]').change(function () {
        var ids = $checks.filter(':checked').map(function () {
            returnt this.id
        }).get();
        alert("Handler for .click() called.");
        alert("GRANTED: " + ids);
        someObj.chkArray = ids;
    });
});

答案 2 :(得分:0)

  

Blockquote我完成了你的要求。查看以下链接页面显示演示   enter link description here

$(document).ready(function(){

   $( "#prescriptionid" ).click(function() {
       var someObj="";

    $('input[type="checkbox"]:checked').each(function() {

        if(someObj=="")
           someObj =  this.id;
        else
           someObj =  someObj+","+this.id;        
    });
     //alert(someObj);
      $("#sel").val(someObj) ;
});

});