【发布时间】:2013-02-14 17:38:15
【问题描述】:
当焦点位于特定文本框上时按下“Enter”键时,我正在尝试运行一些 javascript 代码。如果发生这种情况,我不希望页面回发。 (但是,如果有人单击提交按钮,那么我希望页面像往常一样回发。)
我有一个包含以下内容的页面:
<script type="text/javascript">
$(function () {
$('#txtInput').on('keyup', function (e) {
if (e.keyCode == 13) {
alert('enter was clicked');
return false;
}
});
});
</script>
<asp:TextBox ID="txtInput" runat="server" ClientIDMode="Static"></asp:TextBox>
<asp:Button ID="btnSubmit" runat="server" OnClick="btnSubmitClick" Text="Submit" />
我一直认为return false; 是实现此目的的方法,但在这种情况下,它不起作用。
我也在我的javascript函数中尝试了以下方法,但无济于事。
$(function () {
$('#txtInput').on('keyup', function (e) {
if (e.keyCode == 13) {
e.cancel = true;
e.returnValue = false;
alert('enter was clicked');
}
});
});
我的问题是:
1.为什么这不起作用?
2。我怎样才能实现这种行为?
【问题讨论】:
-
可能是因为 keyup 事件。理论上,钥匙已经打开,所以事件已经发生了。你试过用 keypress 代替吗?
-
@CarlosMartinezT,
keypress事件,结合return false,是我唯一可以开始工作的事情。谢谢你。您应该将此作为答案发布。
标签: javascript jquery asp.net postback asp.net-4.0