js模擬點(diǎn)擊事件實(shí)現(xiàn)代碼
<h3>請(qǐng)單擊“提交”,測(cè)試提交按鈕的單擊事件也被觸發(fā)了。</h3>
<button id="btn">提交</button>
<form action="#" method="get" id="form">
<input type="text" name="site" value="www.woiweb.net" readonly/>
<input id="subbtn" type="submit" value="先別點(diǎn)擊此按鈕提交" onclick="alert('我已經(jīng)提交了');"/>
</form>
Javscript:
<script type="text/javascript">
var sub = document.getElementById("subbtn");
var btn = document.getElementById("btn");
//通用方法
btn.onclick = function() {
sub.click();
}
</script>
經(jīng)過(guò)測(cè)試,IE,F(xiàn)F,Chrome,Opera,Safari都沒(méi)有問(wèn)題,均可正常提交表單。
但在實(shí)際的設(shè)計(jì)中,為了讓提交按鈕更好看,buildder經(jīng)常把它們用a標(biāo)簽來(lái)處理,加個(gè)背景圖片來(lái)模擬按鈕,我們?nèi)匀挥蒙厦娴乃悸穪?lái)嘗試,增加一個(gè)a標(biāo)簽,讓它來(lái)提交表單,我們僅修改html。
Html:
<h3>請(qǐng)單擊“提交”,測(cè)試提交按鈕的單擊事件也被觸發(fā)了。</h3>
<button id="btn">提交</button>
<form action="#" method="get" id="form">
<input type="text" name="site" value="www.woiweb.net" readonly/>
<!--<input id="subbtn" type="submit" value="先別點(diǎn)擊此按鈕提交" onclick="alert('我已經(jīng)提交了');"/> -->
<a id="subbtn" href="javascript:;" onclick="alert('在此調(diào)用提交表單的方法')">模擬提交按鈕</a>
</form>
javascript:
<script type="text/javascript">
var sub = document.getElementById("subbtn");
var btn = document.getElementById("btn");
//通用方法
btn.onclick = function() {
sub.click();
}
</script>
運(yùn)行后,問(wèn)題出現(xiàn)了,IE、FF、Opera均OK,但Chrome和Safari不能正常運(yùn)行,后來(lái)網(wǎng)上搜索了下,發(fā)現(xiàn)a標(biāo)簽并不是和按鈕一樣有onclick()事件的,解決辦法是針對(duì) IE 和 FF編寫(xiě)不同的邏輯,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>
至此,問(wèn)題解決,雖然這個(gè)問(wèn)題很簡(jiǎn)單,但很容易被大家忽略,貼出來(lái)和大家一起分享。
語(yǔ)法:
createEvent(eventType)
參數(shù) | 描述 |
eventType | 想獲取的 Event 對(duì)象的事件模塊名。關(guān)于有效的事件類型列表,請(qǐng)參閱”說(shuō)明”部分。 |
返回值
返回新創(chuàng)建的 Event 對(duì)象,具有指定的類型。
拋出
如果實(shí)現(xiàn)支持需要的事件類型,該方法將拋出代碼為 NOT_SUPPORTED_ERR 的 DOMException 異常。
說(shuō)明
該方法將創(chuàng)建一種新的事件類型,該類型由參數(shù) eventType 指定。注意,該參數(shù)的值不是要?jiǎng)?chuàng)建的事件接口的名稱,而是定義那個(gè)接口的 DOM 模塊的名稱。
下表列出了 eventType 的合法值和每個(gè)值創(chuàng)建的事件接口:
參數(shù) | 事件接口 | 初始化方法 |
HTMLEvents | HTMLEvent | iniEvent() |
MouseEvents | MouseEvent | iniMouseEvent() |
UIEvents | UIEvent | iniUIEvent() |
用該方法創(chuàng)建了 Event 對(duì)象以后,必須用上表中所示的初始化方法初始化對(duì)象。關(guān)于初始化方法的詳細(xì)信息,請(qǐng)參閱 Event 對(duì)象參考。
該方法實(shí)際上不是由 Document 接口定義的,而是由 DocumentEvent 接口定義的。如果一個(gè)實(shí)現(xiàn)支持 Event 模塊,那么 Document 對(duì)象就會(huì)實(shí)現(xiàn) DocumentEvent 接口并支持該方法。
相關(guān)文章
JavaScript基礎(chǔ)入門(mén)之錯(cuò)誤捕獲機(jī)制
初級(jí)開(kāi)發(fā)人員往往很少使用js的拋出和捕獲異常,但拋出和捕獲異常往往是非常必要的,這篇文章主要給大家介紹了關(guān)于JavaScript基礎(chǔ)入門(mén)之錯(cuò)誤捕獲機(jī)制的相關(guān)資料,需要的朋友可以參考下2021-08-08jquery實(shí)現(xiàn)簡(jiǎn)單的遮罩層
這篇文章主要介紹了jquery實(shí)現(xiàn)簡(jiǎn)單的遮罩層相關(guān)代碼,內(nèi)容很豐富,教大家實(shí)現(xiàn)遮罩層效果,感興趣的小伙伴們可以參考一下2016-01-01js實(shí)現(xiàn)飛機(jī)大戰(zhàn)小游戲
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)飛機(jī)大戰(zhàn)小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08vscode錄音及語(yǔ)音實(shí)時(shí)轉(zhuǎn)寫(xiě)插件開(kāi)發(fā)并在工作區(qū)生成本地mp3文件附踩坑日記!
以目前的vscode版本來(lái)說(shuō),作者并沒(méi)有開(kāi)放訪問(wèn)本地媒體權(quán)限,所以插件市場(chǎng)里面的所有語(yǔ)音相關(guān)插件也并沒(méi)有直接獲取vscode的媒體權(quán)限,這篇文章主要介紹了vscode錄音及語(yǔ)音實(shí)時(shí)轉(zhuǎn)寫(xiě)插件開(kāi)發(fā)并在工作區(qū)生成本地mp3文件?踩坑日記!,需要的朋友可以參考下2023-05-05微信小程序使用擴(kuò)展組件庫(kù)WeUI的入門(mén)教程
WeUI是一套同微信原生視覺(jué)體驗(yàn)一致的基礎(chǔ)樣式庫(kù),由微信官方設(shè)計(jì)團(tuán)隊(duì)為微信內(nèi)網(wǎng)頁(yè)和微信小程序量身設(shè)計(jì),令用戶的使用感知更加統(tǒng)一,下面這篇文章主要給大家介紹了關(guān)于微信小程序使用擴(kuò)展組件庫(kù)WeUI的相關(guān)資料,需要的朋友可以參考下2022-04-04select每選擇一個(gè)option選項(xiàng)減少對(duì)應(yīng)的option實(shí)現(xiàn)方法
這篇文章主要為大家介紹了select每選擇一個(gè)option選項(xiàng)減少對(duì)應(yīng)的option實(shí)現(xiàn)方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12使用JavaScript判斷圖片是否加載完成的三種實(shí)現(xiàn)方式
有時(shí)需要獲取圖片的尺寸,這需要在圖片加載完成以后才可以,本文有三個(gè)不錯(cuò)的實(shí)現(xiàn)方式在此與大家分享下2014-05-05用JS中split方法實(shí)現(xiàn)彩色文字背景效果實(shí)例
這篇文章介紹的是利用Javascript中的split方法來(lái)實(shí)現(xiàn)彩色文字背景效果,實(shí)現(xiàn)后的效果很好,有需要的可以參考借鑒。2016-08-08