我有一个ASP.NET表单,它有一个搜索框和一个Go按钮。当您第一次访问该页面并输入搜索时,您可以按enter键单击go按钮。然后,当显示结果列表时,您可以单击另一个按钮来标记要使用的选定结果。然后,我允许用户对他们的hart内容进行重复,以选择多个结果。但是,当您输入搜索查询并按enter键时,2nd+会单击该按钮,而不是单击该按钮。您可以在浏览器(IE7+)中看到,当您在搜索字段中键入内容时,该按钮处于选中状态。我怎么才能还原它,这样在每次按下按钮后,它都会选择该按钮作为默认按钮?
我尝试在按钮的onClick中使用btnGo.Focus(),但是没有效果。
发布于 2010-05-28 03:26:01
你可以做几件事。
DefaultButton属性设置为搜索按钮的ID。这在一些情况下可以工作,但很多人对它有困难,特别是复杂或动态的表单。$("#myTextBox").keydown(function(e) { if (e.keyCode == 13) { __doPostBack('“+ <%= btnSearch.UniqueID + "','')");} });
但是你也可以在代码背后添加一个属性到文本框中来做类似的事情:
myTextBox.Attributes.Add("onKeyPress", "if (event.keyCode == 13) ... ")发布于 2010-05-28 03:25:21
<asp:Panel ID="pnl1" runat="server" DefaultButton="ImageButton1">
<asp:TextBox ID="TextBox1" runat="server">
</asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Submit" />
<asp:ImageButton ID="ImageButton1" runat="server" />
</asp:Panel>或
发布于 2010-05-28 03:34:48
这应该是可行的:
<script language="javascript" type="text/javascript">
function FocusButton() {
var btn = document.getElementById('<%= btnGo.ClientID %>');
btn.Focus();
}
</script>然后在您的搜索文本框中
<asp:TextBox ID="SearchTxt" runat="server" onClick="FocusButton">https://stackoverflow.com/questions/2924181
复制相似问题