当用户按下文本框中的返回时,我可以取消回发吗?

时间:2008-10-16 21:19:14

标签: asp.net jquery

我有一个textbox,其输入由jQuery处理。

$('input.Search').bind("keyup", updateSearchTextbox);

当我在文本框中按Enter时,我收到一个回复​​,这会让一切都搞砸。如何捕获Enter并忽略它?

(只是为了抢占一个可能的建议:文本框必须是<asp:textbox ... /> - 我无法用<input ... />替换它。)

3 个答案:

答案 0 :(得分:13)

按Enter键后,您的浏览器会自动提交表单。要取消此操作,请将return false添加到updateSearchTextBox函数。

如果不起作用,请尝试:

<script language="JavaScript">

function disableEnterKey(e)
{
     var key;     
     if(window.event)
          key = window.event.keyCode; //IE
     else
          key = e.which; //firefox     

     return (key != 13);
}

</script> 

在您的代码隐藏中:

 textbox.Attributes.Add("OnKeyPress","return disableEnterKey(event)");

答案 1 :(得分:1)

Ben Nadel有一篇关于如何使用JQuery执行此操作的博客文章:http://www.bennadel.com/blog/1364-Ask-Ben-Optimizing-Form-Inputs-For-Numeric-Keypad-Usage.htm

答案 2 :(得分:0)

感谢所有回复的人。这是我的新updateSearchTextbox函数,它完美运行:

updateSearchTextbox = function(e) {
    /// <summary>
    /// Handles keyup event on search textbox
    /// </summary>

    if (e.which == "13") {
        // update now
        updateConcessions();
        // Don't post back
        return (false);
    } else {
        delayedUpdateConcessions();
    }

}