【问题标题】:How do I submit individual table rows within a form?如何在表单中提交单个表格行?
【发布时间】:2014-06-11 10:07:15
【问题描述】:

我正在使用 localStorage 离线捕获表单数据,以便稍后在互联网连接可用时上传。每组数据都显示为表中的一个新行。我的表被包装在一个表单中,并且 td 元素具有隐藏的输入标签,其值等于它们的内容,如下所示。这是使用 jQuery 动态创建的。

<tr>
  <td><input type="hidden" name="FirstName" id="FirstName" value="Ollie">Ollie</td>
  <td><input type="hidden" name="Surname" id="Surname" value="Clark">Clark</td>
  ...and so on
</tr>

我已经成功地将表单提交到数据库中,只有一行存在。但是,当我有多行时,事情会变得复杂,因为所有 td 元素共享相同的 ID。单击“提交”按钮后,有什么方法可以使表单分别提交每一行?可能通过某种循环?任何答案表示赞赏,我已经用谷歌搜索过了,似乎找不到任何有用的东西。谢谢!

【问题讨论】:

    标签: jquery html forms local-storage


    【解决方案1】:

    我不确定这是否是您要查找的内容,但这也可能有所帮助。 您可以将所有输入命名为相同,例如“inputField”

    <tr>
      <td><input type="hidden" name="inputOne" id="FirstName" value="Ollie">Ollie</td>
      <td><input type="hidden" name="inputTwo" id="Surname" value="Clark">Clark</td>
    </tr>
    <tr>
      <td><input type="hidden" name="inputOne" id="FirstName" value="Ollie">Ollie</td>
      <td><input type="hidden" name="inputTwo" id="Surname" value="Clark">Clark</td>
    </tr>
    

    因此,当您提交表单时,请在您的 servlet 中执行以下操作,您应该有一个包含所有输入的数组,按照它在您的 html 页面中显示的顺序。

    String[] inputOneArray = request.getParameterValues("inputOne");
    String[] inputTwoArray = request.getParameterValues("inputOne");
    

    【讨论】:

      【解决方案2】:

      您可以使用 jQuery .each() 函数对选择器捕获的所有元素重复相同的操作。所以你可以这样做:

      $(td).each(function(index, element) { 
          // do submitting stuff
      });
      

      【讨论】:

        猜你喜欢
        • 2014-01-27
        • 2013-08-19
        • 1970-01-01
        • 2016-10-12
        • 2021-01-28
        • 1970-01-01
        • 1970-01-01
        • 2016-02-10
        • 1970-01-01
        相关资源
        最近更新 更多