【发布时间】:2014-12-13 07:30:17
【问题描述】:
我有一个包含两个提交按钮的 aspx Web 表单母版页,一个用于帐户登录,一个用于站点搜索。我希望输入键提交登录,但不提交网站上的任何其他按钮,因为登录更频繁地使用。每次我在输入一些登录信息后按 Enter 键时,搜索按钮都会触发并将我带到一个空的结果页面。以下我尝试过但没有成功:
1) 将登录按钮设为 type=submit,其他所有按钮只需 type=button
2) 为所有按钮设置 UseSubmitBehavior="False",但登录设置为 true。
3) 在输入的 ID 上使用各种 JQuery 代码来禁用回车键的 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>
【问题讨论】:
-
如果您发布生成的
HTML代码而不是asp标记,那就太好了,因为问题并不特别与asp 相关,而且并不是每个人都一直在运行asp 服务器。 .. -
另外,我没有看到任何
<form>标签,asp 会生成它吗?难道你不能简单地将登录和搜索字段分成不同的表单,这样登录就不会触发搜索吗? -
When I substituted window for a selector it failed to work.你用的是什么选择器? It should have worked.
标签: jquery webforms master-pages form-submit enter