1.在TextBox中敲擊回車執行ASP.NET后台事件
0.說明
頁面中有一個用於搜索的TextBox,希望能在輸入內容后直接回車開始搜索,而不是手動去點擊它旁邊的搜索按鈕
但因為該TextBox和搜索按鈕不在一個Form里面(直接敲擊回車是另外一個按鈕響應)
所以就在網上找了一種利用jQuery綁定回車鍵, __doPostBack的方法
1.Code
Page標簽
<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="OrderManagement.aspx.cs"Inherits="OrderManagement"EnableEventValidation="false" %>
TextBox與搜索按鈕
<asp:TextBoxID="TextSearch"runat="server"CssClass="col-lg-3 textbox"></asp:TextBox> <asp:LinkButtonID="LinkButtonSearch"runat="server"CssClass="btn btn-default wolegeqv"OnClick="LinkButtonSearch_Click"><iclass="fa fa-search"></i></asp:LinkButton>
jQuery
$('#TextSearch').bind('keypress',function(event){
if(event.keyCode =="13")
{
__doPostBack('LinkButtonSearch');
returnfalse;
}
});
由於我一開始在頁面頂部 Page中設置了 EnableEventValidation="false" 所以上面的代碼能較好的運行
若設置位true,敲擊回車頁面無響應,若打開Chrome的控制台可以看到后台報了個Error
但是后來我在MSDN上看到官方強烈建議將此選項設置為True,又恰巧在StackOverflow上看到了另外一種寫法可以在啟用
EnableEventValidation的情況下運行
jQuery
__doPostBack
(
'<%= MYBUTTONID.UniqueID %>'
,
''
);
$('#TextSearch').bind('keypress',function(event){
if(event.keyCode =="13")
{
__doPostBack('<%=LinkButtonSearch.UniqueID %>','');
returnfalse;
}
});
