我有一个aspx Web表单母版页,其中包含两个提交按钮,一个用于帐户登录,另一个用于站点搜索。我希望输入密钥提交登录,但不是网站上的任何其他按钮,因为更频繁地使用登录。每次我输入一些登录信息后按Enter键,搜索按钮都会触发并将我带到一个空的结果页面。以下我尝试过没有成功:
1)使登录按钮type = submit,其他所有人只需键入= button
2)为除登录设置为true之外的所有按钮设置UseSubmitBehavior =“False”。
3)在输入的ID上使用各种JQuery代码来禁用enter键的keydown事件。
唯一有效的代码如下,但是它禁用了每个东西的回车键。当我用窗口替换选择器时,它无法工作。由于整个页面是一个表单,我没有添加其他表单标签。必须有一种方法允许回车键只能在一个按钮上工作。感谢
$(function () {
$(window).keydown(function (event) {
if (event.keyCode == 13) {
event.preventDefault();
return false;
}
});
});
search:
<div id="SearchForm">
<fieldset>
<asp:TextBox ID="searchQuery" runat="server" size="15" />
</fieldset>
<asp:ImageButton ID="searchButton" runat="server" onmouseover="this.src='/RESOURCES/buttons/search_hover.png'"
onmouseout="this.src='/RESOURCES/buttons/search_active.png'" ImageUrl="/RESOURCES/buttons/search_active.png"
type="button" Style="font-size: 11px;" class="SearchBtn" alt="Search" OnClick="searchButton_Click"
UseSubmitBehavior="False" CausesValidation="False" />
</div>
login:
<div id="logonbox">
<asp:Label ID="Label1" class="LoginLabel1" runat="server" Text="Account Number"></asp:Label>
<asp:TextBox ID="AcctNum" class="AcctNumTexbox" runat="server"></asp:TextBox>
<asp:Label ID="Label2" runat="server" class="LoginLabel2" Text="Access Code"></asp:Label>
<asp:TextBox ID="MtrNum" class="MtrNumTexbox" runat="server"></asp:TextBox>
<asp:ImageButton ID="Login1" type="submit" runat="server" class="boxsubmitbtn" src="/resources/buttons/login.gif"
OnClick="LogInBtn_Click" UseSubmitBehavior="True" CausesValidation="False" />
<p>
<a href="/ACCOUNTS/accounts.aspx">Need help logging in?</a>
</p>
</div>
答案 0 :(得分:2)
有很多方法可以达到你想要的效果,我发现最简单的方法是:
在您的代码中,在Page Load方法中添加以下行:
protected void Page_Load(object sender, EventArgs e)
{
this.Form.DefaultButton = Login1.UniqueID;
}