按下回车键时提交表单

11

我有一个包含多个按钮的aspx页面,其中有一个搜索按钮,我希望当用户按下回车键时触发其事件。 我该如何做到这一点?


1
对于其他人来说,这个问题线程可能更有用。https://dev59.com/fmw05IYBdhLWcg3wy052 - daniel.caspers
4个回答

20

您可以设置表单的默认按钮:

<form id="Form1"
    defaultbutton="SubmitButton"
    runat="server">

3
但是我使用的表单在主页面上! - Jishnu A P
2
尝试使用 Page.Form.DefaultButton = "Button1"。 - m.edmondson
5
我建议您也研究一下这个内容:"this.Form.DefaultButton = this.ibRecalc.UniqueID;"。该链接是https://dev59.com/LXA65IYBdhLWcg3wzyP8。 - a2f0
@dps 注释最好在具有自己表单标记的主页面上使用。您不能在表单中放置另一个表单。 - Andrew Grinder

6
将其设置为表单或面板的默认按钮。 两者都有一个“DefaultButton”属性,您可以将其设置为所需的按钮。

0

使用“提交”输入类型是通过按下回车键和单击按钮进行操作的最佳方法,而无需为每个输入编写js检查用户是否按下回车键。

但您可能会遇到一个问题,即onsubmit在asp.net中无法正常工作。

我用非常简单的方法解决了这个问题。

如果我们有这样一个表单

<form method="post" name="setting-form" >
   <input type="text" id="UserName" name="UserName" value="" 
      placeholder="user name" >
   <input type="password" id="Password" name="password" value="" placeholder="password" >
   <div id="remember" class="checkbox">
    <label>remember me</label>
    <asp:CheckBox ID="RememberMe" runat="server" />
   </div>
   <input type="submit" value="login" id="login-btn"/>
</form>

现在,您可以使用此jQuery捕获表单回发之前的事件,并阻止它回发,然后执行所有所需的Ajax操作。
$(document).ready(function () {
            $("#login-btn").click(function (event) {
                event.preventDefault();
                alert("do what ever you want");
            });
 });

0
$(document).ready(function() {

$("#yourtextbox").keypress(function(e) {
        setEnterValue(e);
    });
});

function setEnterValue( e) {
var key = checkBrowser(e);
if (key == 13) {
 //call your post method
}


function checkBrowser(e) {
if (window.event)
    key = window.event.keyCode;     //IE
else
    key = e.which;     //firefox
return key;}

调用上述函数,它将帮助您检测回车键,然后调用您的提交方法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接