解決document.form.submit()對象不支援此屬性或方法

來源:互聯網
上載者:User

很奇怪的問題,呵呵。。被我碰到了。
很簡單,將頁面中名稱為"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是區分大小寫.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.