我有一个文本框,其输入由jQuery处理。
$('input.Search').bind("keyup", updateSearchTextbox);
当我在文本框中按下回车键时,会触发postback,这会导致一切混乱。我该如何捕获回车键并忽略它?
(提前预防可能的建议:文本框必须是 - 我无法用替换它。)
当您按下回车键时,浏览器会自动提交表单。要取消这个功能,请在updateSearchTextBox函数中添加return false。
如果那样不起作用,请尝试这个:
<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)");
Ben Nadel 在他的博客上写了一篇非常棒的文章,讲解如何使用 JQuery 实现这一功能:http://www.bennadel.com/blog/1364-Ask-Ben-Optimizing-Form-Inputs-For-Numeric-Keypad-Usage.htm
感谢所有回复的人。这是我的新的 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();
}
}