Validation 正在验证页面的多个部分,但只有一个提交按钮

Validation 正在验证页面的多个部分,但只有一个提交按钮,validation,Validation,我正在写一个页面,有一个表单标签和一个提交按钮,但有多个输入点 <form> ... </table class="t1"> <tr> <td><input name="name1" /></td> <td><input name="stDate" /></td> <td><input name="endDate" /></td&g

我正在写一个页面,有一个表单标签和一个提交按钮,但有多个输入点

<form>
...
</table class="t1">
  <tr>
    <td><input name="name1" /></td>
    <td><input name="stDate" /></td>
    <td><input name="endDate" /></td>
    <td><input name="description1" /></td>
  </tr>
</table>
<table class="t2">
  <tr>
    <td><input name="name2" /></td>
    <td><input name="date2" /></td>
    <td><input name="description2" /></td>
    <td><input name="email2" /></td>
    <td><input name="id2" /></td>
  </tr>
</table>
<table class="t3">
  <tr>
    <td><input name="name3" /></td>
    <td><input name="date3" /></td>
    <td><input name="description3" /></td>
  </tr>
</table>
....
  <div align="center" class="submit">
    <input class="submit" width="10%" type="submit" name="submit" id="submit" value="Submit" />
  </div>
</form>

...
....

这些字段都不是必需的,用户可以填写每个字段,也不必填写任何字段。我遇到的问题是,如果用户填写了表“t1”上的任何字段,那么我需要为表“t1”填写其他字段……并且为表“t2”和“t3”填写相同的字段--另外,请注意,输入字段是唯一的,bc我在提交后将写入数据库。感谢您的帮助,如果需要,请索取更多信息。

您可以使用getElementsByName。然后您将获得名称、日期和描述的数组。然后,您可以遍历它们,并确保如果名称[0]不为空,则日期[0]和说明[0]不为空,等等

更新以支持更新的问题:

在这种情况下,更好的选择是使用jquery,它提供了更简单的语法来执行相同的操作。您可以有一个虚拟css类用于构成表单部分的表。e、 g

<table class="t1 formsection">

“formsection”是伪css类

然后使用jquery可以得到$(“.formsection”),它将给出所有表单部分。JQuery允许您获取给定元素的特定元素类型的子元素。使用它,您可以获得每个表单部分的输入元素


一旦你有了它,你就可以在这些输入元素中循环,看看是全部为空还是全部为空

您可以执行以下操作:

<form ... onsubmit="return validate_form();">
...
</form>
<script type="text/javascript">
    function validate_form(){
        var name_list = document.getElementsByName('name');
        var date_list = document.getElementsByName('date');
        var desc_list = document.getElementsByName('description');
        var is_valid = true;
        for( var i=0; i<name_list.length; i++ ){
            var n = name_list[i].value.length > 0;
            var d = date_list[i].value.length > 0;
            var ds = desc_list[i].value.length > 0;
            if( !( (n && d && ds) || (!n && !d && !ds) ) ) {
                is_valid = false;
            }
        }

        return is_valid;
    }
</script>

...
函数validate_form(){
var name_list=document.getElementsByName('name');
var date_list=document.getElementsByName(“日期”);
var desc_list=document.getElementsByName('description');
var为有效=真;
对于(VarI=0;I0;
var d=日期列表[i]。value.length>0;
var ds=desc_list[i].value.length>0;
如果(!((n&&d&&ds)| |(!n&&d!d&&ds))){
is_valid=false;
}
}
退货有效;
}

类似的内容现在已经编辑了,这只是一个小例子,所有的表都有不同数量的输入字段。这种情况下仍然有效吗?我甚至不确定如何在这样的数组上运行任何类型的验证脚本。