Array []表单验证

时间:2010-12-08 02:39:52

标签: javascript arrays validation forms

array.length一直在输出2007年的数组?

嗯..我有一个表当然有2 <tr> 1表示标题,1表示数据库中的值

我的表中有一个名为code and description的列,其中id为fCode[]fDesc[],每个都有一个元素

我有一个代码,每次单击添加时都可以克隆表格行。在每个添加的行中添加另一个fCode[]fDesc[]

2 rows = 2 fCode[], fDesc[]

在我的javascript函数中,我有这个

function validate_pr_form(e) {

    var fCode = document.forms[e].elements["fCode[]"];
    var fDesc = document.forms[e].elements["fDesc[]"];
    for ( i = 0; i < fCode.length; i++ ){
        if ( fCode[i].value == "" ) {
            alert("Please choose product code");
            fCode[i].focus();
            return false;
        }
    }
    for ( i = 0; i < fDesc.length; i++ ){
        if ( fDesc[i].value == "" ) {
            alert("Please choose product description");
            fDesc[i].focus();
            return false;
        }
    }
    e.submit();

}

每当我加载页面并点击提交按钮时,我总是得到2007个数组但是当我添加另一行时,它现在变为2行(2 fCode[]和2 fDesc[])我得到2个数组那些通常集中在每个数组索引中。

我的问题只有一行......

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

感谢您的回答,但我已经通过获取像这样的元素名称来解决我的问题

fCode = document.getElementsByName("fCode[]");

for ( var i = 0; i < fCode.length; i++ ){
        if ( fCode[i].value == "" ) {
            alert("Please choose 'Product Code'.");
            fCode[i].focus();
            return false;
        }
    }

答案 1 :(得分:0)

试试这个:

var fCode = document.forms[e].elements["fCode[]"];
if (typeof fCode.length != "number")
   fCode = [fCode];
var fDesc = document.forms[e].elements["fDesc[]"];
if (typeof fDesc.length != "number")
   fDesc = [fDesc];