jquery 重新填充表表单字段

发布于 2024-11-19 16:48:13 字数 463 浏览 0 评论 0原文

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

这工作正常。

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

I have a simple html table that starts off with two rows. Each row contains 2 form fields. User's can add additional rows to the table as follows:

$('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;
});

This works fine.

However, if there is an error detected after the form is posted, then I need to recreate the table with the correct number of rows. At the moment, after posting, the table defaults back to the two starting rows only.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

陈独秀 2024-11-26 16:48:14

提交表单时,您可以存储表中的行数。

$('form').submit(function(){
    // Cool stuff here
    // ...
    localStorage.setItem('nbLinesinTable', $('table > tr').length);
    // or add input to form
}

k_wave 解决方案也是可靠的。

On submitting form you can store the number of lines in table.

$('form').submit(function(){
    // Cool stuff here
    // ...
    localStorage.setItem('nbLinesinTable', $('table > tr').length);
    // or add input to form
}

The k_wave solution's is also reliable.

初相遇 2024-11-26 16:48:14

我决定做这个服务器端。

控制器:

$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; ?>

I decided to do this server side.

Controller:

$data['rows'] = count($_POST('foo'));

View

<?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; ?>
笙痞 2024-11-26 16:48:13

尝试将数据发布从标准 html-post 移植到 AJAX 请求。这将确保在发布表单时不会重新加载网站 ->您的桌子将保持原样。请参阅 JQuery 提交

Try to port posting of data from standard html-post to AJAX requests. That will ensure that the site is not reloaded when the form is posted -> your table will stay as it is. See JQuery Submit

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文