Jquery 文本框输入导致回发或重定向?
我在asp.net中有一个文本框和一个按钮包装在updatepanel中,如下所示:Jquery 文本框输入导致回发或重定向?,jquery,asp.net,updatepanel,Jquery,Asp.net,Updatepanel,我在asp.net中有一个文本框和一个按钮包装在updatepanel中,如下所示: <asp:UpdatePanel ID="UpdatePanel21" runat="server" UpdateMode="Always" > <ContentTemplate> <asp:TextBox ID="txtLIDescription" runat="server" Columns="50">
<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>
如果我发出警报(“hello world”)代码>我看到它已输入if条件,因此它知道已单击enter。然后我希望将焦点设置为按钮,然后让它单击按钮,就像普通终端用户单击按钮一样。没有,好像是发回的
我试着加上:
event.preventDefault();
return false;
在jquery中,希望能够避免它,不是同样的事情。我甚至尝试了ASP.net标记并添加了
UseSubmitBehavior=false
而页面似乎仍在发回。这是因为它位于updatepanel中吗?是否有其他解决方法???您可以尝试将UpdatePanel
的内容包装在面板中,并将其属性设置为btnAddLineItem
编辑:“问题是,为什么这样做
首先是问题的原因:当您按enter键时,表单中的第一个按钮将被单击,这不是ASP.NET特有的,这是正常行为。但是,仅当导致回发的控件位于UpdatePanel内部时,UpdatePanel才会执行异步回发。否则,您需要为该控件指定一个AsyncPostBackTrigger
我的方法之所以有效,是因为它确保了当用户在该面板内单击enter时,会单击相应的按钮(在UpdatePanel内)。这将根据需要导致异步回发
这不是黑客攻击,而是ASP.NET2.0中引入的有用功能。您的代码保持可读性,不需要使用“javascript破解”。但是更新面板在一个div中。我可以以某种方式重用它吗?@oJM86o:一个面板将呈现为一个div。因此您可以用一个面板替换您的div。@oJM86o:编辑了我的答案以添加解释。下载投票者:想评论一下吗?你试过“按键下载”吗?当你按下回车键时会发生什么?特拉维斯-你读过我的帖子吗…当我按下回车键时,它进入if条件并设置焦点,可能会单击,但它做得很快,因为它最终会发回。如果你的代码工作正常,那么按下回车键时你不会进入该条件。“当用户释放键盘上的键时,keyup事件将发送到元素。”您很可能需要处理多个事件。但是,如果你满足于仅仅破解一个解决方案,那么就坚持不倾听。你读过我的评论吗?@TravisJ-我的观点是我进入了正确的位置-我知道如何调试我不是一个傻瓜,我的问题是它仍然被发回。
event.preventDefault();
return false;