2014-10-17 255 views
1

我有一个aspx网页表单母版页,其中包含两个提交按钮,一个用于帐户登录,一个用于网站搜索。我希望回车键提交登录,但不要登录网站上的任何其他按钮,因为登录更频繁。每次在输入一些登录信息后点击回车,搜索按钮就会启动并将我带到一个空的结果页面。我没有成功尝试了以下内容:防止使用回车键提交表单提交按钮

1)使登录按钮类型=提交和所有其他只需键入=按钮

2)设置UseSubmitBehavior =“假”的,除了登录这是所有按钮设置为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>  
+2

这如果你发布了生成的HTML代码而不是asp标签,那么你应该很好,因为问题不是特别关于asp,并不是每个人都一直在运行asp服务器... – 2014-10-17 16:45:01

+0

另外,我没有看到任何'

'标签,asp是否生成它..?你不能简单地将登录和搜索字段分成不同的形式,以便登录不会触发搜索..? – 2014-10-17 16:47:44

+0

'当我替代选择器的窗口时,它失败了。'你使用了什么选择器? [它应该有效。](http://jsfiddle.net/897mfns0/1/) – Stryner 2014-10-17 16:59:00

回答

2

有很多方法可以实现你想要什么,我觉得最简单的就是:

在后面的代码,在页面加载方法添加此行:

protected void Page_Load(object sender, EventArgs e) 
{ 
    this.Form.DefaultButton = Login1.UniqueID; 
}