首頁  >  文章  >  web前端  >  js模擬點擊以提交表單為例相容主流瀏覽器_javascript技巧

js模擬點擊以提交表單為例相容主流瀏覽器_javascript技巧

WBOY
WBOY原創
2016-05-16 17:11:401229瀏覽

在實際的應用程式開發中,我們會常常用到JS的模事件,但有時會遇到一些問題,比如說點擊事件,舉個簡單的例子,點擊表單外的「提交」按鈕來提交表單。上代碼吧。

Html:

複製程式碼 程式碼如下:






Javscript:


複製代碼 程式碼如下:
var sub = document.getElementById("subbtn");
var btn = document.getElementById( "btn");
//通用方法
btn.onclick = function() {
sub.click();
}



經過測試,IE,FF,Chrome,Opera,Safari都沒有問題,均可正常提交表單。
但在實際的設計中,為了讓提交按鈕更好看,buildder經常把它們用a標籤來處理,加個背景圖片來模擬按鈕,我們仍然用上面的思路來嘗試,增加一個a標籤,讓它來提交表單,我們只修改html。

Html:



模擬提交按鈕



Javascript:



複製程式碼

複製程式碼複製程式碼

程式碼如下:


}


運行後,問題出現了,IE、FF、Opera均OK,但Chrome和Safari不能正常運行,後來網上搜索了下,發現a標籤並不是和按鈕一樣有onclick()事件的,解決辦法是針對IE 和FF編寫不同的邏輯,JS代碼如下: javascript: 複製代碼

代碼如下:


}
至此,問題解決,雖然這個問題很簡單,但很容易被大家忽略,貼出來和大家一起分享。

語法:

createEvent(eventType)

參數   描述

eventType 發的事件模組名稱。關於有效的事件類型列表,請參閱”說明”部分。

傳回值

傳回新建立的 Event 對象,具有指定的型別。

拋出

如果實作支援需要的事件類型,則該方法會拋出程式碼為 NOT_SUPPORTED_ERR 的 DOMException 例外。

說明

此方法將建立新的事件類型,該類型由參數 eventType 指定。請注意,該參數的值不是要建立的事件介面的名稱,而是定義那個介面的 DOM 模組的名稱。

下表列出了eventType 的合法值和每個值所建立的事件介面:

參數事件介面初始化方法
HTMLEvents  HTMLEvent iniEvent() MouseEvents  HTMLEvent iniv() MouseEvents  HTMLEvent iniv() MouseEvents  HTMLEvent[ )
UIEvents    UIEvent  iniUIEvent()

用此方法建立了Event 物件以後,必須用上表所示的初始化方法初始化物件。關於初始化方法的詳細信息,請參閱 Event 物件參考。

該方法實際上不是由 Document 介面定義的,而是由 DocumentEvent 介面定義的。如果一個實作支援 Event 模組,那麼 Document 物件就會實作 DocumentEvent 介面並支援該方法。
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn