您好,登錄后才能下訂單哦!
js獲取表單中的指定動態(tài)變量
問題描述:for循環(huán)實現(xiàn)表格每行數(shù)據(jù)輸入,對應(yīng)每行有提交表單需要做相應(yīng)處理,我們需要獲得該行某列的變量值
要求:表格每一行有一個提交按鈕實現(xiàn)前臺判斷操作(判斷表格每行第二列的值namefile是否等于動態(tài)設(shè)置的值)
實現(xiàn):通過在提交表單onsubmit="javascript:return checkName()"調(diào)用函數(shù)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實現(xiàn)方法:
一、采用getElementById() ,該方法難以實現(xiàn)
原因:getElementById()返回?fù)碛兄付╥d的第一個對象的引用,因為我們實現(xiàn)的是for循環(huán)多行數(shù)據(jù)采用同一個變量,該函數(shù)只會得到第一行的對象
getElementById()在js中使用:
var name = getElementById("filename").value; //name為得到的對應(yīng)id的屬性值,filename為id名稱
二、采用getElementsByName(),該方法難以實現(xiàn)
原因:getElementsByName()返回指定名稱對象的集合,為對象數(shù)組結(jié)構(gòu),對應(yīng)每一行的提交按鈕無法確定是第幾行,也無法檢測是第幾個提交按鈕
檢測方法比較復(fù)雜
三、采用函數(shù)傳值
有的時候不能采用固定思維,只想到利用HTML DOM 方法,利用函數(shù)傳值很簡單,每行的參數(shù)變量是變化的,每行傳的形參自然是正確的
代碼如下:
<head>
<script type="text/javascript">
function checkName(subfilename){
if(subfilename == " ") //引號里自己控制,若動態(tài)也可以用此函數(shù)傳形參過來
{
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>
測試,此方法簡單有效。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。