2014-01-23 80 views
0

我在運行時使用Jquery創建了一個表,並將唯一標識綁定到複選框。通過jquery獲取選中和未選中的表數據

$.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")); 
     }); 

    }) 

用戶可以檢查,並取消checkboxex,論保存我想存儲(表)的值都與該ID選中/取消狀態檢查boxex點擊。 我想循環遍歷整個表格,並將數據存儲爲id @ 1作爲複選框,id @ 0作爲同一數組中的未選中的複選框。 我對jquery有點新,所以沒有得到語法。請建議。

+0

你能請出示由該JavaScript產生的渲染HTML?而且,對於那個HTML,展示你所期望的精確輸出。 –

+0

你好托馬斯,我的問題現在用Suren解決了。 – Maverick

回答

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)); 
}) 
+0

非常感謝。多一點幫助。現在數據以這種形式出現。 {「10020」:false,「10021」:true,「10022」:true,「10023」:false,「10024」:false} 我需要這種形式的輸出id @ 1 for true和id @ 0 for假。 – Maverick

+0

@Maverick將更新代碼。 – suren

+0

@Maverick:更新了我的答案。 – suren

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')); 
     }); 
    }); 
}); 
+0

未經檢查的項目不起作用。它給我語法錯誤。實際上,我想循環遍歷整個表格,並將數據存儲爲ID @ 1作爲複選框,ID @ 0作爲未選中的複選框。 – Maverick

+0

我編輯了答案 .not(':checked') 需要單引號 –

相關問題