我有一个简单的html表,以两行开头。每行包含2个表单字段。用户可以按如下方式向表中添加其他行:
$('a#addRow').click(function() {
$('#jTable tr:last').after('<tr>'+
'<td><input type="text" name="foo[]" value="" id="foo[]" /></td>'+
'<td><input type="text" name="bar[]" value="" id="bar[]" /></td></tr>');
return false;
});
这很好用。
但是,如果在发布表单后检测到错误,那么我需要使用正确的行数重新创建表。目前,在发布后,表格默认只返回两个起始行。
答案 0 :(得分:0)
尝试将标准html-post中的数据发布到AJAX请求。这将确保在发布表单时不会重新加载网站 - &gt;你的桌子会保持不变。见JQuery Submit
答案 1 :(得分:0)
在提交表单时,您可以在表格中存储行数。
$('form').submit(function(){
// Cool stuff here
// ...
localStorage.setItem('nbLinesinTable', $('table > tr').length);
// or add input to form
}
k_wave解决方案也很可靠。
答案 2 :(得分:0)
我决定做这个服务器端。
控制器:
$data['rows'] = count($_POST('foo'));
查看
<?php for ($i = 0; $i < $rows; $i++): ?>
<tr>
<td><input type="text" name="foo[]" value=<?php echo $foo[$i]; ?> id="foo[]" /></td>
<td><input type="text" name="bar[]" value=<?php echo $bar[$i]; ?> id="bar[]" /></td>
</tr>
<?php endfor; ?>