jquery重新填充表格表单字段

时间:2011-07-13 21:44:33

标签: php javascript jquery html forms

我有一个简单的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;
});

这很好用。

但是,如果在发布表单后检测到错误,那么我需要使用正确的行数重新创建表。目前,在发布后,表格默认只返回两个起始行。

3 个答案:

答案 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; ?>