Textbox控件注冊(cè)回車事件及觸發(fā)按鈕提交事件具體實(shí)現(xiàn)
更新時(shí)間:2013年03月04日 15:09:30 作者:
Lyncplus客戶端中訪問Web頁面時(shí)遇到了TextBox控件回車自動(dòng)完成按鈕的提交事件失效的情況,于是上網(wǎng)查找相關(guān)的介紹最終解決了這兩個(gè)問題,感興趣的你可以參考下或許對(duì)你有所幫助
引子:
在ASP.Net頁面中textbox的index為1(或n),其后的提交按鈕index為2(n+1),光標(biāo)在textbox中,回車后自動(dòng)焦點(diǎn)移動(dòng)到后面的button上,會(huì)觸發(fā)button的點(diǎn)擊事件。
但在Lyncplus客戶端中訪問Web頁面時(shí)遇到了TextBox控件回車自動(dòng)完成按鈕的提交事件失效的情況(應(yīng)該是自動(dòng)切換焦點(diǎn))。
由于并且該服務(wù)端TextBox控件沒有提供OnKeyPress或OnKeyDown等事件,也無法針對(duì)回車事件寫后臺(tái)代碼來調(diào)用Button按鈕的點(diǎn)擊事件。
于是上網(wǎng)查找相關(guān)的介紹,最終解決了以下兩個(gè)問題:
(一)、實(shí)現(xiàn)在TextBox控件回車事件中 執(zhí)行JS代碼,來控制頁面元素的值。
(二)、實(shí)現(xiàn)在TextBox控件回車事件中 調(diào)用服務(wù)端控件的點(diǎn)擊事件,來執(zhí)行服務(wù)端C#代碼,實(shí)現(xiàn)相關(guān)的功能。
具體實(shí)現(xiàn)如下:
一、注冊(cè)和觸發(fā)服務(wù)端TextBox控件回車事件
1.PageLoad事件代碼:
protected void Page_Load(object sender, EventArgs e)
{
MessageTxt.Attributes.Add("onkeypress", "EnterTextBox()");
MessageTxt.Attributes.Add("onkeydown", "EnterTextBox()");
}
2.javascript代碼:
<script language="javascript">
function EnterTextBox() {
if (event.keyCode == 13 && document.all["MessageTxt"].value != "") //按下了回車,并且文本框里有值
{
$("#<%=hidKeywords.ClientID%>").val($("#<%=MessageTxt.ClientID%>").val().replace(/[^\u0000-\u00FF]/g,
function ($0) {
return escape($0).replace(/(%u)(\w{4})/gi, "&#x$2;")
}));
}
}
</script>
二、TextBox控件回車事件中調(diào)用服務(wù)端Button控件點(diǎn)擊事件
1.PageLoad事件代碼: 同上。
protected void Page_Load(object sender, EventArgs e)
{
MessageTxt.Attributes.Add("onkeypress", "EnterTextBox()");
MessageTxt.Attributes.Add("onkeydown", "EnterTextBox()");
}
2.javascript代碼: 注意使用原始的dom對(duì)象獲取按鈕,使用Jquery獲取不到。
<script language="javascript">
function EnterTextBox() {
var button = document.getElementById('<%=btnSearch.ClientID%>');//獲取服務(wù)端控件對(duì)應(yīng)的頁面對(duì)象
if (event.keyCode == 13) //按下了回車
{
button.click();
event.returnValue = false;
}
} </script>
在ASP.Net頁面中textbox的index為1(或n),其后的提交按鈕index為2(n+1),光標(biāo)在textbox中,回車后自動(dòng)焦點(diǎn)移動(dòng)到后面的button上,會(huì)觸發(fā)button的點(diǎn)擊事件。
但在Lyncplus客戶端中訪問Web頁面時(shí)遇到了TextBox控件回車自動(dòng)完成按鈕的提交事件失效的情況(應(yīng)該是自動(dòng)切換焦點(diǎn))。
由于并且該服務(wù)端TextBox控件沒有提供OnKeyPress或OnKeyDown等事件,也無法針對(duì)回車事件寫后臺(tái)代碼來調(diào)用Button按鈕的點(diǎn)擊事件。
于是上網(wǎng)查找相關(guān)的介紹,最終解決了以下兩個(gè)問題:
(一)、實(shí)現(xiàn)在TextBox控件回車事件中 執(zhí)行JS代碼,來控制頁面元素的值。
(二)、實(shí)現(xiàn)在TextBox控件回車事件中 調(diào)用服務(wù)端控件的點(diǎn)擊事件,來執(zhí)行服務(wù)端C#代碼,實(shí)現(xiàn)相關(guān)的功能。
具體實(shí)現(xiàn)如下:
一、注冊(cè)和觸發(fā)服務(wù)端TextBox控件回車事件
1.PageLoad事件代碼:
復(fù)制代碼 代碼如下:
protected void Page_Load(object sender, EventArgs e)
{
MessageTxt.Attributes.Add("onkeypress", "EnterTextBox()");
MessageTxt.Attributes.Add("onkeydown", "EnterTextBox()");
}
2.javascript代碼:
復(fù)制代碼 代碼如下:
<script language="javascript">
function EnterTextBox() {
if (event.keyCode == 13 && document.all["MessageTxt"].value != "") //按下了回車,并且文本框里有值
{
$("#<%=hidKeywords.ClientID%>").val($("#<%=MessageTxt.ClientID%>").val().replace(/[^\u0000-\u00FF]/g,
function ($0) {
return escape($0).replace(/(%u)(\w{4})/gi, "&#x$2;")
}));
}
}
</script>
二、TextBox控件回車事件中調(diào)用服務(wù)端Button控件點(diǎn)擊事件
1.PageLoad事件代碼: 同上。
復(fù)制代碼 代碼如下:
protected void Page_Load(object sender, EventArgs e)
{
MessageTxt.Attributes.Add("onkeypress", "EnterTextBox()");
MessageTxt.Attributes.Add("onkeydown", "EnterTextBox()");
}
2.javascript代碼: 注意使用原始的dom對(duì)象獲取按鈕,使用Jquery獲取不到。
復(fù)制代碼 代碼如下:
<script language="javascript">
function EnterTextBox() {
var button = document.getElementById('<%=btnSearch.ClientID%>');//獲取服務(wù)端控件對(duì)應(yīng)的頁面對(duì)象
if (event.keyCode == 13) //按下了回車
{
button.click();
event.returnValue = false;
}
} </script>
相關(guān)文章
js動(dòng)態(tài)添加事件并可傳參數(shù)示例代碼
js動(dòng)態(tài)添加事件可以搜索到很多的相關(guān)文章,不過可以傳參數(shù)的就沒有幾個(gè)了,下面有個(gè)不錯(cuò)的示例可以滿足大家對(duì)傳參的需求,感興趣的各位不要錯(cuò)過2013-10-10
JS使用canvas繪制旋轉(zhuǎn)風(fēng)車動(dòng)畫
這篇文章主要為大家詳細(xì)介紹了JS使用canvas繪制旋轉(zhuǎn)風(fēng)車動(dòng)畫,有加速減速啟動(dòng)停止功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
深入理解JavaScript系列(8) S.O.L.I.D五大原則之里氏替換原則LSP
本章我們要講解的是S.O.L.I.D五大原則JavaScript語言實(shí)現(xiàn)的第3篇,里氏替換原則LSP(The Liskov Substitution Principle )。2012-01-01
JavaScript設(shè)計(jì)模式之單件模式介紹
這篇文章主要介紹了JavaScript設(shè)計(jì)模式之單件模式介紹,單件模式,就是靜態(tài)化的訪問中已經(jīng)實(shí)例化的對(duì)象,這個(gè)對(duì)象只能通過一個(gè)唯一的入口訪問,已經(jīng)實(shí)例或待實(shí)例化的對(duì)象,需要的朋友可以參考下2014-12-12
javascript 系統(tǒng)文件夾文件操作及參數(shù)介紹
javascript文件操作包括寫入文件、當(dāng)前目錄文件、讀文件、刪除文件、批量刪除,未刪除文件夾,刪除不了當(dāng)前目錄文件等等,感興趣的朋友可以參考下2013-01-01

