我有與包含形式輸入(複選框,文本,下拉菜單)中的多個行的表。當我點擊保存時,我希望能夠獲取表示將在AJAX請求中使用的每個錶行的JSON。每行都有一個ID,所以我想回來這樣的事情:在表中的行(jQuery的)序列化輸入
[1: { "input_name":"input_value", "input_name":"input_value", etc...}, 2: {etc...}]
這些數字是錶行的id。
任何方式來做到這一點?
我有與包含形式輸入(複選框,文本,下拉菜單)中的多個行的表。當我點擊保存時,我希望能夠獲取表示將在AJAX請求中使用的每個錶行的JSON。每行都有一個ID,所以我想回來這樣的事情:在表中的行(jQuery的)序列化輸入
[1: { "input_name":"input_value", "input_name":"input_value", etc...}, 2: {etc...}]
這些數字是錶行的id。
任何方式來做到這一點?
這應該做你需要的東西:
<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>
非常感謝..這對我來說非常有用.. – user284503 2011-05-10 23:15:21
很高興幫助你:) – code90 2011-05-12 09:57:35
非常感謝。它也幫助了我。 :) – Jijoy 2011-07-22 16:13:40
沒有測試過,但是這樣的事情應該工作
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();
});
});
有你爲什麼需要它格式化這樣一個具體的原因是什麼? – Calvin 2010-10-27 14:14:32