2011-11-29 110 views
0

我有一個文本框和一個按鈕。當輸入文本框時,Asp.net buttonclick服務器事件觸發

該按鈕在代碼隱藏上有一個btn_click(obj, eventargs)

這是在master的頁面。

當文本框被聚焦並單擊enter我要的是,

我想運行的功能,換句話說,單擊按鈕。

所以,我寫...

$("#" + "<%= txtSearch.ClientID %>").keypress(function (e) { 
    var code = (e.keyCode ? e.keyCode : e.which); 
    if (code == 13) { 
    $("#" + "<%= imgBtnSearch.ClientID %>").click(); 
} 

在服務器端的功能,我重定向到另一個頁面。

因爲它不重定向,我可以認爲它不工作?

有什麼我可以使它工作?

});

+1

嘗試括起來在面板中設置面板的'defaultbutton'屬性(該按鈕),這應該觸發按鈕點擊 – V4Vendetta

+0

@ V4Vendetta這是值得作爲它的答案slef –

+0

@JonP添加它作爲答案,但他已經接受了JQuery的方式:) – V4Vendetta

回答

1

這是它:

<script type="text/javascript"> 
    $(function() { 
     $("#" + "<%= txtSearch.ClientID%>").keypress(function (e) { 
      var code = (e.keyCode ? e.keyCode : e.which); 
      if (code == 13) { 
      e.preventDefault(); 
      $("#" + "<%= imgBtnSearch.ClientID%>").click(); 
     }}); 
    }); 
</script> 
0

你應該嘗試封閉Textbox並在PanelButton並設置DefaultButton屬性爲面板的按鈕。這將確保當你按回車鍵文本框中的按鈕,點擊會觸發

或者你也可以通過設置DefaultButton的形式像 Page.Form.DefaultButton = [yourbutton]

0

威廉做以另一種方式!

請提供一個服務器端函數代碼,可能是問題出在那裏。如果服務器端處理程序沒問題,那麼你應該打開JavaScript控制檯並檢查是否有錯誤(如果是這樣,那麼重定向不會發生)。

並嘗試使用此功能而不是您的按鈕服務器單擊。

$("#" + "<%= txtSearch.ClientID %>").keypress(function (e) { 
    var code = (e.keyCode ? e.keyCode : e.which); 
    if (code == 13) { 
     <%= scriptPostBackButton1 %> 
    } 
} 

在這個例子中,點擊文本框上的'enter'會導致服務器端的點擊處理程序與回發。這是你需要的行爲嗎?

代碼隱藏:

public partial class _Default : System.Web.UI.Page 
{ 
    public string scriptPostBackButton1 = ""; 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      scriptPostBackButton1 = 
       ClientScript.GetPostBackEventReference(new PostBackOptions(clickableButton, "", "", false, false, true, true, true, "")); 
     } 
    } 


    protected void clickableButton_Click(object sender, EventArgs e) 
    { 
     string result = "ok, it's working";    
    } 
} 

Default.aspx的

<form id="Form1" runat="server"> 
    <asp:TextBox ID="tbEnter" runat="server" onkeydown=" return clientHandler(event);" /> 
    <asp:Button ID="clickableButton" runat="server" Text="click" Width="49px" /> 
</form>  
1
<form id="Form1" runat="server"> 
    <asp:Panel ID="Pnl1" runat="server" DefaultButton="BtnTest"> 
    <asp:TextBox ID="TxtTest" runat="server"></asp:TextBox> 
    <asp:Button ID="BtnTest" runat="server" Text="Test" OnClick="BtnTest_Click" /> 
    </asp:Panel> 
</form> 

試試這個,這將觸發僅適用於文本框的 「爲btnTest」 「TxtTest」

相關問題