【问题标题】:how to validate the text fields related to each other in a form如何验证表单中彼此相关的文本字段
【发布时间】:2012-09-25 05:45:07
【问题描述】:

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

这是我的条件:

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 - 用户必须为同一行的两个字段或同一行的任何一个字段都输入值。

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

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

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

【问题讨论】:

  • 感谢您纠正我的问题。您对此有什么想法吗?

标签: php javascript html


【解决方案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 来引用字段进行验证.. 否则它将不起作用。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      如果你想要一个概念,那么你可以通过 jquery 使用父子概念来实现它

      你要做的就是在表中找到所有 tr,然后为每个 tr 找到它们的 fldSeatingarea[] 和 fldPrice[]

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

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

      【讨论】:

        【解决方案4】:

        只是我的看法

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

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

        【讨论】:

          猜你喜欢
          • 2023-04-08
          • 1970-01-01
          • 2016-05-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-11-07
          • 1970-01-01
          • 2021-08-24
          相关资源
          最近更新 更多