2010-10-27 17 views
9

Form girişleri (onay kutuları, metin, açılır) içeren birden çok satıra sahip bir tablom var. Kaydet'i tıkladığımda, AJAX isteğinde kullanılacak olan her bir tablo satırını temsil eden JSON'u alabilmek istiyorum.Tablo satırlarındaki girişleri seri hale getirme (jQuery)

[1: { "input_name":"input_value", "input_name":"input_value", etc...}, 2: {etc...}] 

bu numaralar tablo satırının kimliği olma ile: Böyle bir şeyler almak istiyorum böylece her satır, üzerinde bir kimliği vardır.

Bunu yapmanın herhangi bir yolu var mı?

+0

var mı? – Calvin

cevap

21

Bu neye ihtiyacınız yapmalıyım çalışması gerekir: Eğer bu şekilde biçimlendirilmiş ihtiyaç belirli bir nedeni

<table> 
    <tr id="101"> 
     <td><input type="text" name="f1" value="" /></td> 
     <td><input type="checkbox" name="f2" value="v2" /></td> 
     <td><input type="checkbox" name="f3" value="" /></td> 
     <td><select name="f4"> 
       <option>1</option> 
       <option>2</option> 
       <option>3</option> 
      </select></td> 
    </tr> 
    <tr id="102"> 
     <td><input type="text" name="f1" value="" /></td> 
     <td><input type="checkbox" name="f2" value="v2" /></td> 
     <td><input type="checkbox" name="f3" value="" /></td> 
     <td><select name="f4"> 
       <option>1</option> 
       <option>2</option> 
       <option>3</option> 
      </select></td> 
    </tr> 
    <tr id="103"> 
     <td><input type="text" name="f1" value="" /></td> 
     <td><input type="checkbox" name="f2" value="v2" /></td> 
     <td><input type="checkbox" name="f3" value="" /></td> 
     <td><select name="f4"> 
       <option>1</option> 
       <option>2</option> 
       <option>3</option> 
      </select></td> 
    </tr> 

</table> 
<button id="btnGo">Go</button> 
<script type="text/javascript"> 
    $('#btnGo').click(function(){ 
     var data={}; 
     $('table').find('tr').each(function(){ 
      var id=$(this).attr('id'); 
      var row={}; 
      $(this).find('input,select,textarea').each(function(){ 
       row[$(this).attr('name')]=$(this).val(); 
      }); 
      data[id]=row; 
     }); 
     console.log(data); 
    }); 
</script> 
+0

Çok teşekkürler ... Bu benim için çok yararlı oldu .. – user284503

+0

Size yardımcı oldu sevindim :) – code90

+0

Çok teşekkürler. Bana da yardım etti. :) – Jijoy

2

test değil ama böyle bir şey

var myjson = new Object(); 
$("#tableid > tr").each(function() { 
    var tablerow = $(this); 
    $("td input", tablerow).each(function() { 
    var input = $(this); 
    myjson[tablerow.attr("id")][input.attr("name")] = input.val(); 
    }); 
}); 
İlgili konular