js获取表单中的指定动态变量



问题描述:for循环实现表格每行数据输入,对应每行有提交表单需要做相应处理,我们需要获得该行某列的变量值


要求:表格每一行有一个提交按钮实现前台判断操作(判断表格每行第二列的值namefile是否等于动态设置的值)


实现:通过在提交表单onsubmit="javascript:return checkName()"调用函数checkName()检测,返回false表单不提交,不返回或者返回true提交表单


程序框架如下:

    

        function checkName(){



        }

    


 

......

<%for(var i = 0, i < 10, ++i)%>

    

        

            ....

        

        

        

onsubmit="javascript:return checkName()">

"/>


        

        

        

        

            ....

        

          .

          .

          .

    

 



js实现方法:

一、采用getElementById() ,该方法难以实现

原因:getElementById()返回拥有指定id的第一个对象的引用,因为我们实现的是for循环多行数据采用同一个变量,该函数只会得到第一行的对象


getElementById()在js中使用:

var name = getElementById("filename").value; //name为得到的对应id的属性值,filename为id名称


二、采用getElementsByName()该方法难以实现

原因:getElementsByName()返回指定名称对象的集合,为对象数组结构,对应每一行的提交按钮无法确定是第几行,也无法检测是第几个提交按钮

检测方法比较复杂


三、采用函数传值

有的时候不能采用固定思维,只想到利用HTML DOM 方法,利用函数传值很简单,每行的参数变量是变化的,每行传的形参自然是正确的


代码如下:

    

        function checkName(subfilename){

            if(subfilename == "  ") //引号里自己控制,若动态也可以用此函数传形参过来

            {

                return true;//可以省略

            }

            else{

                alert("请重新选择");

                return false;

            }

        }

    


 

......

<%for(var i = 0, i < 10, ++i)%>

    

        

            ....

        

        

        

onsubmit="javascript:return checkName(subfilename.value)">

"/>

......

        

        

        

        

            ....

        

          .

          .

          .

    

 


测试,此方法简单有效。