我有一个文本框和一个按钮。
按钮在代码隐藏时有一个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();
}
在服务器端功能上,我正在重定向到另一个页面。
由于它没有重定向,我可以假设它不起作用吗?
我能做些什么吗?
});
答案 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)
您应该尝试将Textbox
和Button
括在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>