Подтвердить что ты не робот

Введите ключ в неправильной кнопке asp.net

У меня есть текстовое поле и много кнопок. Когда пользователь находится в некотором текстовом поле и нажимает клавишу "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" свойства той кнопке, которую я создал. Это тоже не работало.

Любая идея, почему это не работает и что я делаю неправильно?

4b9b3361

Ответ 1

Стандартный способ в ASP.NET для управления кнопкой отправки активируется при нажатии ENTER - это обернуть элементы управления и кнопки в панели asp: Panel, где свойство DefaultButton установлено на правильную кнопку.

Если я правильно читаю ваш вопрос, вы просто хотите, чтобы одна кнопка была активирована, когда нажата клавиша ENTER, поэтому оберните все на своей странице в одиночной панели ASP.

<asp:Panel id="pnlDefaultButton" runat="server" DefaultButton="btnOK">
    <!-- All controls here including: -->
    <asp:Button id="btnOK" runat="server" Text="OK" />
</asp:Panel>

Ответ 2

Панель не нужна. Просто используйте следующее:

UseSubmitBehavior="false"

Ответ 3

Пожалуйста, используйте

idTextBoxFA.Attributes.Add("onkeypress", "javascript:var evnt = window.event";
if(evnt.keyCode==13)
{
document.getElementById('" + noEnterButton.ClientID + "').click();
}
else{};");