最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js觸發(fā)asp.net的Button的Onclick事件應(yīng)用

 更新時(shí)間:2013年02月02日 15:33:45   作者:  
由于asp.net采用的是事件驅(qū)動(dòng)模式,所以默認(rèn)用戶按回車并沒有觸發(fā)按鈕的onclick事件。用戶按回車也不是沒有提交表單,通過httpwath可以看到,實(shí)際上頁面表單是提交到了form下的action頁面,只不過沒有觸發(fā)onclick事件而已,感興趣的朋友可以了解下,或許對你有所幫助
在asp.net引入事件驅(qū)動(dòng)之后,在一個(gè)頁面上很容易解決多個(gè)按鈕觸發(fā)不同事件的問題,避免了在asp中需要多個(gè)form或者通過js腳本來控制的麻煩。

asp.net帶來便利的同時(shí),也帶來一個(gè)問題。在實(shí)際應(yīng)用中一個(gè)頁面存在多個(gè)按鈕的情況并不多。用戶習(xí)慣于在輸入框輸入內(nèi)容之后,直接按回車就提交表單了。由于asp.net采用的是事件驅(qū)動(dòng)模式,所以默認(rèn)用戶按回車并沒有觸發(fā)按鈕的onclick事件。用戶按回車也不是沒有提交表單,通過httpwath可以看到,實(shí)際上頁面表單是提交到了form下的action頁面,只不過沒有觸發(fā)onclick事件而已。

在asp.net事件驅(qū)動(dòng)模式下面,要實(shí)現(xiàn)通過回車來觸發(fā)事件,必須要借助js腳本來實(shí)現(xiàn)。
在asp.net的aspx頁面中,form的代碼:
復(fù)制代碼 代碼如下:

<form id="form1" runat="server">

但在訪問頁面的源代碼中可以看到:
復(fù)制代碼 代碼如下:

<form name="form1" method="post" action="Default.aspx" id="form1">

所以在輸入框默認(rèn)直接按回車,其實(shí)就是把表單提交到了form的action對應(yīng)的頁面,而并沒有觸發(fā)任何事件。
奇怪的地方:當(dāng)一個(gè)aspx頁面上沒有使用web控件的時(shí)候,在輸入框里按回車,默認(rèn)是不會觸發(fā)任何一個(gè)button按鈕的onclick事件;但當(dāng)頁面上有使用web控件的時(shí)候,在輸入框里按回車,默認(rèn)會觸發(fā)第一個(gè)button的onclick事件?!具@里的第一指頁面代碼中最先出現(xiàn)的button控件,包括web控件內(nèi)的button控件】
下面說說如何通過js來觸發(fā)button按鈕的onclick事件。
默認(rèn)的button控件,在html中的代碼是這樣的:
復(fù)制代碼 代碼如下:

<input type="submit" name="Button1" value="Button" id="Button1" />

實(shí)際上點(diǎn)擊這個(gè)button觸發(fā)的onclick事件調(diào)用了一個(gè)js腳本:__doPostBack(eventTarget, eventArgument)
button 控件有個(gè)屬性:UseSubmitBehavior,默認(rèn)是true,當(dāng)你修改為false的時(shí)候,再去看html的源代碼,就能清楚的看到調(diào)用的js腳本函數(shù)。
復(fù)制代碼 代碼如下:

<input type="button" name="Button1" value="Button" onclick="javascript:__doPostBack('Button1','')" id="Button1" />

生成的js腳本:
復(fù)制代碼 代碼如下:

<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1; function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit(); }
//]]>
</script>

了解了這塊內(nèi)容,要處理輸入框按回車觸發(fā)button的onclick事件就簡單的多了,就是截獲輸入框按回車的這個(gè)動(dòng)作,然后通過js調(diào)用__doPostBack這個(gè)函數(shù)就OK了輸入框:
復(fù)制代碼 代碼如下:

<input name="TextBox1" type="text" id="TextBox1" onkeydown="return KeyDown('Button1');" />
<input type="submit" name="Button1" value="Button" id="Button1" />

js腳本
復(fù)制代碼 代碼如下:

function KeyDown(btn) {
if (event.keyCode != 13) //按鍵不是enter鍵 return; else //按鍵是enter鍵 try {
__doPostBack(btn, '');
return false; catch (e) {
alert(e);
return; }
}

如果要輸入框和button控件是在web控件里的,就需要特別注意:
控件中的button控件生成的html代碼:
復(fù)制代碼 代碼如下:

<input type="submit" name="WUC11$Button2" value="Button" id="WUC11_Button2" />

__doPostBack中用到的是input按鈕的name屬性,web控件中button,在生成的html代碼里會加上控件的ID,所以傳遞的 button名稱不要寫錯(cuò)了。

相關(guān)文章

  • 15分鐘深入了解JS繼承分類、原理與用法

    15分鐘深入了解JS繼承分類、原理與用法

    這篇文章主要介紹了JS繼承分類、原理與用法,結(jié)合實(shí)例形式較為詳細(xì)的總結(jié)分析了javascript原型鏈繼承、構(gòu)造函數(shù)繼承、組合繼承、原型式繼承、寄生式繼承和寄生組合式繼承等相關(guān)原理及使用方法,需要的朋友可以參考下
    2019-01-01
  • JavaScript的基礎(chǔ)語法和數(shù)據(jù)類型詳解

    JavaScript的基礎(chǔ)語法和數(shù)據(jù)類型詳解

    這篇文章主要介紹了JavaScript的基礎(chǔ)語法和數(shù)據(jù)類型,保姆級的詳細(xì)教程,萬字長文詳細(xì)的列出了JavaScript的各種語法,建議收藏系列,希望可以有所幫助
    2021-09-09
  • JS運(yùn)算符優(yōu)先級與表達(dá)式示例詳解

    JS運(yùn)算符優(yōu)先級與表達(dá)式示例詳解

    這篇文章主要給大家介紹了關(guān)于JS運(yùn)算符優(yōu)先級與表達(dá)式的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Webpack中l(wèi)oader打包各種文件的方法實(shí)例

    Webpack中l(wèi)oader打包各種文件的方法實(shí)例

    這篇文章主要給大家介紹了關(guān)于Webpack中l(wèi)oader打包各種文件的相關(guān)資料,其中包括處理css文件、less文件、scss文件、url地址以及ES6高級語法的方法,需要的朋友可以參考下
    2019-09-09
  • 利用Javascript判斷操作系統(tǒng)的類型實(shí)現(xiàn)不同操作系統(tǒng)下的兼容性

    利用Javascript判斷操作系統(tǒng)的類型實(shí)現(xiàn)不同操作系統(tǒng)下的兼容性

    在通過Javascript實(shí)現(xiàn)客戶端和服務(wù)端的交互時(shí),有時(shí)候需要對操作系統(tǒng)進(jìn)行判斷,以便實(shí)現(xiàn)不同操作系統(tǒng)下的兼容性;從而實(shí)現(xiàn)網(wǎng)站在跨平臺瀏覽時(shí)候保持良好的用戶體驗(yàn),感興趣的朋友可以了解下啊,或許對你有所幫助
    2013-01-01
  • js轉(zhuǎn)換對象為xml

    js轉(zhuǎn)換對象為xml

    本文主要介紹了js轉(zhuǎn)換對象為xml的方法。具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-02-02
  • javascript inneHTML的地雷

    javascript inneHTML的地雷

    大家都喜歡用innerHTML添加內(nèi)容,但是innerHTML這東西在兩大陣營中有許多不同。
    2010-02-02
  • JavaScript實(shí)現(xiàn)網(wǎng)頁截圖功能

    JavaScript實(shí)現(xiàn)網(wǎng)頁截圖功能

    這篇文章主要介紹了JavaScript實(shí)現(xiàn)網(wǎng)頁截圖功能,本文介紹了2款實(shí)現(xiàn)JavaScript截圖的開源組件,一個(gè)是Canvas2Image,一個(gè)是html2canvas,需要的朋友可以參考下
    2014-10-10
  • JS中g(shù)etElementsByClassName與classList兼容性問題解決方案分析

    JS中g(shù)etElementsByClassName與classList兼容性問題解決方案分析

    這篇文章主要介紹了JS中g(shù)etElementsByClassName與classList兼容性問題解決方案,結(jié)合實(shí)例形式分析了getElementsByClassName與classList的使用方法、原理及兼容性問題的處理技巧,需要的朋友可以參考下
    2019-08-08
  • JS滾動(dòng)到指定位置導(dǎo)航欄固定頂部

    JS滾動(dòng)到指定位置導(dǎo)航欄固定頂部

    最近整理一下之前做的一個(gè)項(xiàng)目,把滾動(dòng)條動(dòng)態(tài)固定頂部的代碼整理出來和大家分享
    2017-07-07

最新評論

丁青县| 德惠市| 遂川县| 开江县| 深州市| 文安县| 中超| 开原市| 大方县| 尉犁县| 固始县| 舞阳县| 山丹县| 东至县| 始兴县| 宝坻区| 洛南县| 习水县| 黔西县| 交口县| 耒阳市| 龙游县| 甘泉县| 来安县| 邮箱| 栾城县| 新余市| 资源县| 湘西| 菏泽市| 舟山市| 易门县| 兴隆县| 启东市| 萨迦县| 富锦市| 宜兴市| 樟树市| 商水县| 钟山县| 平远县|