通过jquery获取Checked和Unchecked表数据

时间:2014-01-23 15:42:09

标签: javascript jquery checkbox

我在运行时使用Jquery创建一个表,并将唯一ID绑定到复选框。

  $.getJSON('/api/Test/SelectionList' + '/' + ID)
   .done(function (data) {          
       $.each(data, function (key, val) {
           var myRow = $("<tr/>");
           //$("<td> <input type='checkbox' ></input>   </td>").text(val.IsActive).appendTo($(myRow));
           var items = "";
           items += '<input type="checkbox" id=' + val.FacilityID + ' ';             
           if (val.IsSelected) {
               items += 'checked/>';
           }
           else {
               items += '/>';
           }
           //$("<td/>").text(val.IsActive).appendTo($(myRow));
           $("<td> " + items + "</td>").appendTo($(myRow));
           $("<td/>").text(val.Facilityname).appendTo($(myRow));
           $("<td/>").text(val.RegionName).appendTo($(myRow));
           $("<td/>").appendTo($(myRow));
           myRow.appendTo($("#Table"));
       });

   })

用户可以选中并取消选中复选框,单击“保存”,我想要将带有ID的已检查/未检查状态的(表)所有复选框的值存储起来。 我想循环遍历整个表,并将数据存储为id @ 1表示复选框,id @ 0表示未复制框表示在同一个数组中。 我对jquery有点新意,所以没有得到语法。请建议。

2 个答案:

答案 0 :(得分:1)

已更新,这是小提琴http://jsfiddle.net/MQQSv/1/

<table>
   <tr>
    <td>one</td>
    <td>
    <input type="checkbox" id='1'  checked/></td> 
   </tr>
   <tr>
    <td>two</td>
    <td>
    <input type="checkbox" id='2' /></td>
   </tr>
</table>

$('#save-btn').on('click', function() {
    var output = []
 $("table td input[type=checkbox]").each(function(){
   id = $(this).attr("id");
   output.push( id + "@" + ($(this).is(":checked") ? "1" : "0"))
  })
  console.log(JSON.stringify(output));
})

答案 1 :(得分:0)

你可以试试这个: 将id推入两个不同的数组

$(document).ready(function() {

    // bind click event to save-btn 
    $('#save-btn').on('click', function() {

        // init two array 
        // (if you want to use var out of on's callback function, you need to do declaration outside)    
        var checkedList = [],
            uncheckedList = [];

        // push ckecked id into checkedList
        $('input:checked').each(function() {
            checkedList.push($(this).attr('id'));
        });

        // push unckecked id into uncheckedList
        $('input').not(':checked').each(function() {
            uncheckedList.push($(this).attr('id'));
        });
    });
});