0

我有一个包含许多文本字段的表单。其中我对文本字段(座位区和价格)有疑问。他们可以根据用户的点击次数越来越多地添加。

这是我的条件:

1 -如果(其中任何一个)座位区文本字段为空或价格文本字段为空,则不应提交表单。

2 -我已经使用 jquery 插件来验证一些文本字段,但不是全部。

3 -由于字段(座位区和价格在我的情况下彼此相关,我使用它们的名称作为数组来发布数组中的所有值,例如:

<tr>
    <td>
        <input type="text" name="fldSeatingarea[]" id="fldSeatingarea[]">
    </td>
    <td>
        <input type="text" name="fldPrice[]" id="fldPrice[]">
    </td>
</tr>
<tr>
    <td>
        <input type="text" name="fldSeatingarea[]" id="fldSeatingarea[]">
    </td>
    <td>
        <input type="text" name="fldPrice[]" id="fldPrice[]">
    </td>
</tr>
<tr>
    <td>
        <input type="text" name="fldSeatingarea[]" id="fldSeatingarea[]">
    </td>
    <td>
        <input type="text" name="fldPrice[]" id="fldPrice[]">
    </td>
</tr>

4 -每当用户点击添加更多表格行时插入字段

5 -我没有验证这些字段(fldSeatingarea[]fldPrice[]

6 -用户必须为同一行的两个字段或同一 tbl 行中的任何一个字段都输入值。

所以我的问题是:提交表单时,我如何才能找到同一表格行的两个字段(fldSeatingarea[]fldPrice[])中的任何一个都不为空?

如果同一表格行的任何一个字段为空,则不应提交表单。

我正在使用 html、php 和一点点 javascript 做这个小实验。

4

4 回答 4

1
  <tr>
<td>
    <input type="text" name="fldSeatingarea[]" id="fldSeatingarea_1">
</td>
<td>
    <input type="text" name="fldPrice[]" id="fldPrice_2">
</td>
</tr>
<tr>
<td>
    <input type="text" name="fldSeatingarea[]" id="fldSeatingarea_2">
</td>
  <td>
    <input type="text" name="fldPrice" id="fldPrice_2">
  </td>
</tr>

使用 Id's Like this 来引用字段进行验证.. 否则它将不起作用。

于 2014-03-30T12:38:32.330 回答
0

我并不特别同意您在表单上使用 ID 的方式。当您填充表单时,我会保留一个 JS 数组变量来指示选定的座位区。

然后,您可以将元素的 ID 更改为fldSeatingarea_3orfldSeatingarea_5并通过遍历数组来定位 area 和 price 元素for (var n in selection) { //check the 'fldSeatingarea_'+n field }

于 2012-09-25T05:57:50.617 回答
0

如果你想要一个概念而不是你可以通过 jquery 用父子概念来做

你必须做的是在表中找到所有 tr,而不是为每个 tr 找到他们的 fldSeatingarea[] 和 fldPrice[]

如果您发现两者都是空的,则在验证它之后返回 false 提交事件

这里有一些链接可以帮助你更多 http://api.jquery.com/child-selector/ http://api.jquery.com/parent/

于 2012-09-25T05:58:39.533 回答
0

只是我的观点

提交表单后,所有字段(fldSeatingarea[] 和 fldPrice[])都在一个数组中传递。它们都..

您可以使用 count 来比较插入了多少值以及添加了多少字段,如果它们没有相同的值,表单将触发并且不提交,除非它们具有相同的值。

于 2012-09-25T09:15:54.880 回答