У меня есть текстовое поле и много кнопок. Когда пользователь находится в текстовом поле и нажимает клавишу «Enter», возникает событие нажатия определенной кнопки. Я прочитал в Интернете, что есть некоторые проблемы с клавишей "Enter", и я пробовал несколько решений, но все же он всегда вводит это событие кнопки (эта кнопка является первой кнопкой на странице).
Я попытался создать кнопку, которая ничего не делает и записывает это в page_load:
idTextBoxFA.Attributes.Add("onkeydown","if(event.which || event.keyCode){if ((event.which == 13) || (event.keyCode == 13)) {document.getElementBtId('" + noEnterButton.UniqueID + "').click();return false;}} else {return true}; ");
Все элементы управления моей страницей находятся в форме, и я попытался передать свойство формы "defaultButton" этой кнопке. Это тоже не сработало.
Есть идеи, почему это не работает и что я делаю не так?
Стандартный способ в ASP.NET контролировать, какая кнопка отправки активируется при нажатии ENTER - это обернуть элементы управления и кнопки в asp:Panel со свойством DefaultButton, установленным на нужную кнопку.
Если я правильно понял ваш вопрос, вы просто хотите, чтобы при нажатии ENTER активировалась одна конкретная кнопка, поэтому оберните все на вашей странице в одну asp:Panel.
<asp:Panel id="pnlDefaultButton" runat="server" DefaultButton="btnOK">
<!-- All controls here including: -->
<asp:Button id="btnOK" runat="server" Text="OK" />
</asp:Panel>