很奇怪的問題,呵呵。。被我碰到了。
很簡單,將頁面中名稱為"submit"的控制項改一下名稱就可以了
比如:
有一個submit按鈕名字叫submit
<input type="submit" name="submit" value="提交"/>
你把這個名稱改一下
<input type="submit" name="submit1" value="提交"/>
-------------------------------------------------------------------
這兩天做列表資料顯示的時候,幾乎被"對象不支援此屬性和方法" 的錯誤提示搞瘋掉了,兩個完全一樣的程式(事後才知道有個單詞的大小寫
不一樣),竟然一個顯示正常,一個卻頻繁提示出錯。
在一般情況下,同一個表單只能被提交給同一個地址。但在實際web應用中,我們希望同一個表單可以根據使用者的選擇來完成不同的操作,即表
單的分向提交。比如說:在一個網站後台使用者管理系統中,我需要對一些惡意的使用者進行批量解鎖,鎖定使用者或者刪除的操作,當我從select
中選擇刪除會員時,我們希望表單會提交給能進行刪除的處理常式,當我 從select 中選擇鎖定會員時,我們希望表單會 提交到鎖定會員的處
理程式,解鎖會員 也如此。我們極不願意看到分別為這三個功能建立三個不同的頁面,而其中僅僅 是處理常式不同。
利用用戶端JavaScript的功能,我們簡化可以把三項功能簡化一個介面就可以完成,一個select,其中放置要進行的操作,一個Submit按鈕(其
實一個普通的Button也可以實現,)
<form action="?" method="post" enctype="application/x-www-form-urlencoded" name="listfrm" id="listfrm">
<label>
<select name="Action" size="1" id="Action">
<option value="delete">刪除</option>
<option value="lock">刪除</option>
<option value="unlock">刪除</option>
</select>
</label>
<input name="Submit" id="Submit" type="submit" value="確定" onclick="doPostBack(this.form,'?" />
</form>
這是JavaScript中doPostBack函數的原始碼,其中傳遞的參數為表單對象的引用和表單的action檔案地址
function doPostBack(formObj,actionFile){
if(confirm("確定要執行的操作嗎?")){
formObj.action=actionFile;
formObj.submit();
return true;
}
return false;
}
這樣可以在一個表單中放上多個Button,甚至是串連,都可以實現同一個表單的提交給不同的處理常式。
在做表單處理時要注意:
1、表單應該包含name,aciton,method這三個必須的屬性,enctype,id這兩個屬性可以根據需要加上,一般是建議加上,表單不要嵌套
2.document.form.action與document.form.submit()一定不要搞混,action是屬性,submit是方法,方法不要忘記加上左右括弧,這是一般新手經常遇到的問題。
3.在一個完整表單中,不應有名字為action或submit的標籤,否則將會產生"對象不支援此屬性和方法"的ie錯誤。如代碼"<input type='xxxx' name="action" >"或"<input type='xxxx' name="submit" >" 在表單中是不允許出現的,而Action和Submit則是允許的(上面的程式碼就是用的是這樣的寫法),因為JavaScript是區分大小寫.