【发布时间】:2012-05-02 06:33:53
【问题描述】:
我有一个用 TAB 键替换 Enter 的 javascript 脚本:
function ReplaceEnterWithTab() { if (event.keyCode == 13) event.keyCode = 9; return false; }
我是这样使用的:
txt.Attributes.Add("OnKeyDown", "ReplaceEnterWithTab();");
这段代码很好用。现在我想用jQuery开发一个不需要添加OnKeyDown属性的脚本。请考虑这个示例页面:
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server" CssClass="EntTab"></asp:TextBox>
<br />
<br />
<asp:TextBox ID="TextBox2" runat="server" CssClass="EntTab"></asp:TextBox>
<br />
<br />
<asp:DropDownList ID="DropDownList1" runat="server" CssClass="EntTab">
<asp:ListItem>1</asp:ListItem>
<asp:ListItem>2</asp:ListItem>
</asp:DropDownList>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
</div>
</form>
我写了这段代码:
$(document).ready(function () {
$('.EntTab').on('keydown', function (e) {
if (e.keyCode == 13) e.keyCode = 9;
});
});
问题是当我按下TextBox1 上的Enter 键时,Button1 会导致页面回发。我该如何解决这个问题?
谢谢
【问题讨论】:
-
为什么不在你的身体标签上用
keydown调用ReplaceEnterWithTab?这样,所有元素都会起作用。
标签: javascript jquery asp.net