如何在表单中提交单个表行?

时间:2014-04-25 15:37:23

标签: jquery html forms local-storage

我正在使用localStorage离线捕获表单数据,以便以后可以在Internet连接可用时上载。每组数据都显示为表中的新行。我的表被包装在一个表单中,并且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。单击“提交”按钮后,有什么方法可以让表单单独提交每一行?可能通过某种循环?任何答案都赞赏,我用Google搜索了这个,似乎找不到任何有用的东西。谢谢!

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

我不确定这是否是您正在寻找的,但这也可能有所帮助。 您可以将所有输入命名为相同,例如&#34; inputField&#34;

<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");