js 获取表格数据(表单变量值)
更新:HHH   时间:2023-1-7


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



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


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


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


程序框架如下:

<head>

    <script type="text/javascript">

        function checkName(){



        }

    </script>

</head>


<body> 

......

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

    <tr>

        <td>

            ....

        </td>

        <td>

        <form action="file.action" enctype="multipart/form-data" method="post"

onsubmit="javascript:return checkName()">

<input type="hidden" name="subfilename" id="subfilename" value="<%=namefile%>"/>


        <input type="submit" name="btn" value="点击" />

        </form>

        </td>

        <td>

            ....

        </td>

          .

          .

          .

    </tr>

</body> 



js实现方法:

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

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


getElementById()在js中使用:

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


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

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

检测方法比较复杂


三、采用函数传值

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


代码如下:

<head>

    <script type="text/javascript">

        function checkName(subfilename){

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

            {

                return true;//可以省略

            }

            else{

                alert("请重新选择");

                return false;

            }

        }

    </script>

</head>


<body> 

......

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

    <tr>

        <td>

            ....

        </td>

        <td>

        <form action="file.action" enctype="multipart/form-data" method="post"

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

<input type="hidden" name="subfilename" id="subfilename" value="<%=namefile%>"/>

......

        <input type="submit" name="btn" value="点击" />

        </form>

        </td>

        <td>

            ....

        </td>

          .

          .

          .

    </tr>

</body> 


测试,此方法简单有效。












返回web开发教程...