国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

js模擬點擊以提交表單為例兼容主流瀏覽器

2024-05-06 15:56:35
字體:
來源:轉載
供稿:網友
我們會常常用到JS的模事件,比如說點擊事件,舉個簡單的例子,點擊表單外的“提交”按鈕來提交表單,下面為大家介紹下具體的實現

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

Html:

復制代碼 代碼如下:


<h3>請單擊“提交”,測試提交按鈕的單擊事件也被觸發了。</h3>
<button>提交</button>
<form action="#" method="get">
<input type="text" value="www.woiweb.net" readonly/>
<input type="submit" value="先別點擊此按鈕提交"/>
</form>


Javscript:

復制代碼 代碼如下:


<script type="text/javascript">
var sub = document.getElementById("subbtn");
var btn = document.getElementById("btn");
//通用方法
btn.onclick = function() {
sub.click();
}
</script>


經過測試,IE,FF,Chrome,Opera,Safari都沒有問題,均可正常提交表單。

但在實際的設計中,為了讓提交按鈕更好看,buildder經常把它們用a標簽來處理,加個背景圖片來模擬按鈕,我們仍然用上面的思路來嘗試,增加一個a標簽,讓它來提交表單,我們僅修改html。

Html:

復制代碼 代碼如下:


<h3>請單擊“提交”,測試提交按鈕的單擊事件也被觸發了。</h3>
<button>提交</button>
<form action="#" method="get">
<input type="text" value="www.woiweb.net" readonly/>
<!--<input type="submit" value="先別點擊此按鈕提交"/> -->
<a href="javascript:;">模擬提交按鈕</a>
</form>


Javascript:

復制代碼 代碼如下:


<script type="text/javascript">
var sub = document.getElementById("subbtn");
var btn = document.getElementById("btn");
//通用方法
btn.onclick = function() {
sub.click();
}
</script>


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

復制代碼 代碼如下:


<script type="text/javascript">
var sub = document.getElementById("subbtn");
var btn = document.getElementById("btn");
//通用方法
btn.onclick = function() {
//sub.click();
if (/msie/i.test(navigator.userAgent)) //IE
{
sub.fireEvent("onclick");
} else {
var e = document.createEvent('MouseEvent');
e.initEvent('click', false, false);
sub.dispatchEvent(e);
}
}
</script>


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

語法:

createEvent(eventType)

參數   描述

eventType 想獲取的 Event 對象的事件模塊名。關于有效的事件類型列表,請參閱”說明”部分。

返回值

返回新創建的 Event 對象,具有指定的類型。

拋出

如果實現支持需要的事件類型,該方法將拋出代碼為 NOT_SUPPORTED_ERR 的 DOMException 異常。

說明

該方法將創建一種新的事件類型,該類型由參數 eventType 指定。注意,該參數的值不是要創建的事件接口的名稱,而是定義那個接口的 DOM 模塊的名稱。

下表列出了 eventType 的合法值和每個值創建的事件接口:

參數      事件接口  初始化方法
HTMLEvents  HTMLEvent iniEvent()
MouseEvents  MouseEvent iniMouseEvent()
UIEvents    UIEvent  iniUIEvent()

用該方法創建了 Event 對象以后,必須用上表中所示的初始化方法初始化對象。關于初始化方法的詳細信息,請參閱 Event 對象參考。

該方法實際上不是由 Document 接口定義的,而是由 DocumentEvent 接口定義的。如果一個實現支持 Event 模塊,那么 Document 對象就會實現 DocumentEvent 接口并支持該方法。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 松滋市| 丹江口市| 宜良县| 松桃| 营山县| 洛南县| 肥西县| 深圳市| 洛扎县| 曲水县| 峨边| 澄迈县| 城口县| 南漳县| 湘乡市| 克什克腾旗| 澄迈县| 大连市| 宽城| 湘阴县| 永年县| 乐昌市| 界首市| 安塞县| 滦平县| 荆门市| 田东县| 阿克苏市| 社旗县| 太白县| 华阴市| 曲水县| 景洪市| 富宁县| 侯马市| 枣强县| 武冈市| 铁岭县| 五原县| 东源县| 乌兰察布市|