【发布时间】:2012-04-24 22:29:32
【问题描述】:
我在 asp.net 中有一个文本框和一个按钮,像这样包装在更新面板中:
<asp:UpdatePanel ID="UpdatePanel21" runat="server" UpdateMode="Always" >
<ContentTemplate>
<asp:TextBox ID="txtLIDescription" runat="server" Columns="50">
</asp:TextBox>
<asp:Button ID="btnAddLineItem" runat="server" onclick="btnAddLineItem_Click"
Text="Add" ToolTip="Add line item." UseSubmitBehavior="false" />
</ContentTemplate>
</asp:UpdatePanel>
如果我单击按钮,一切都会按预期工作。但是当我按回车键(我认为我的用户会这样做)时,系统似乎会回帖。我尝试使用 jquery 来避免它:
$('#LineItemContent_txtLIDescription')
.livequery('keyup', function (event) {
if (event.keyCode == 13) {
$('#LineItemContent_btnAddLineItem').focus();
$('#LineItemContent_btnAddLineItem').click();
}
$("#LineItemContent_btnAddLineItem").button();
});
如果我放置一个alert("hello world");,我看到它已进入 if 条件,因此它知道已点击了一个输入。然后我希望将焦点设置在按钮上,然后让它单击按钮,就像普通最终用户单击按钮一样。好像没有回帖。
我尝试添加:
event.preventDefault();
return false;
在 jquery 中希望能避免它,不是同样的事情。我什至尝试了 ASP.net 标记并添加了
UseSubmitBehavior=false
该页面似乎仍在回发。这是因为它位于更新面板中吗?有没有其他办法解决这个问题??
【问题讨论】:
-
你试过'keydown'吗?按住回车键会发生什么?
-
Travis - 你读过我的帖子了吗...当我按下回车键时,它会进入 if 条件并设置焦点,可能会点击,但它执行得如此之快,因为它最终会发布返回。
-
如果您的代码工作正常,那么您不会在按下回车键的情况下输入该条件。 “当用户释放键盘上的键时,keyup 事件被发送到元素。”您很可能必须处理多个事件。但是,如果您只满足于破解解决方案,那么请坚持不听。你看我的评论了吗?
-
@TravisJ - 我的意思是我进入了正确的位置 - 我知道如何调试我不是傻瓜,我的问题是它仍然发回。
标签: jquery asp.net updatepanel