输入文本框时,Asp.net按钮单击服务器事件

时间:2011-11-29 06:48:04

标签: c# asp.net

我有一个文本框和一个按钮。

按钮在代码隐藏时有一个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();
}

在服务器端功能上,我正在重定向到另一个页面。

由于它没有重定向,我可以假设它不起作用吗?

我能做些什么吗?

});

4 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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>   

试试这个,只会为文本框“TxtTest”触发“BtnTest”

答案 2 :(得分:0)

您应该尝试将TextboxButton括在Panel中,并将面板的DefaultButton属性设置为按钮。这将确保当您在文本框中按Enter键时,将触发按钮单击

或者您可以通过为表单设置DefaultButton以另一种方式执行此操作 Page.Form.DefaultButton = [yourbutton]

答案 3 :(得分: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>