我希望这很容易,但我看起来并找不到适合我的解决方案。我有一个带有2个用户控件的aspx页面。一个是带有旋转自动完成文本框的用户控件,我想要“回车”键来引发回发。
我在页面上的另一个控件中有一个按钮,onClick会执行其他操作。当我在“自动完成”中输入文本并按Enter键时,按钮的onClick将会触发。有没有办法让Enter键不会导致onClick触发。
我已经尝试了一些javascript来禁用输入键按下,但这会打破我的文本框输入。
我有什么选择。
编辑1
这是我的一些标记
<uc:CompanyAC runat="server" ID="ac" />
<cc2:GenericGridView OnHtmlDataCellPrepared="HtmlDataCellPrepared"
KeyFieldName="CompanyID" ID="gridCompanies" DataSourceID="ManageCompaniesObjectDataSource" runat="server"
AutoGenerateColumns="False" />
CompanyAC控件有一个文本框,其中包含一些自动完成WS调用的jquery(无需显示
<asp:TextBox ID="searchbox" runat="server" Width="400px" />
GenericGridView控件包含一个按钮
<asp:Button runat="server" ID="Button" Text="New" AllowFocus="false" OnClick="Button_Click" />
所以会发生的情况是,当焦点位于文本框上时,如果按下Enter键,则另一个控件中的按钮会触发其onclick。我不希望这种情况发生,但我仍然希望发生回发
答案 0 :(得分:1)
试试这个
$('input').keypress(function(event){
if(event.keyCode==13)
{
event.preventDefault();
}
})
答案 1 :(得分:0)
如果你正在使用jQuery,你可以试试这个:
$('input').on('keypress', function(e){
// Attempt form submit (after event function exits).
var f = $(this).parents('form');
setTimeout(function(){f.submit();}, 1);
// Return false to prevent form submit when enter key is pressed.
return !((window.event) ? window.event.keyCode : e.which)==13);
});