您好,登錄后才能下訂單哦!
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>
測試,此方法簡單有效。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。