我有一个textbox
,其输入由jQuery处理。
$('input.Search').bind("keyup", updateSearchTextbox);
当我在文本框中按Enter
时,我收到一个回复,这会让一切都搞砸。如何捕获Enter并忽略它?
(只是为了抢占一个可能的建议:文本框必须是<asp:textbox ... />
- 我无法用<input ... />
替换它。)
答案 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();
}
}