введите ключ в asp.net, запустив неправильную кнопку - PullRequest
19 голосов
/ 12 августа 2010

У меня есть текстовое поле и много кнопок.Когда пользователь находится в каком-либо текстовом поле и нажимает клавишу «Ввод», возникает конкретное событие нажатия кнопки.Я прочитал в Интернете, что есть некоторые проблемы с клавишей «Ввод», и я попробовал несколько решений, но тем не менее он всегда вводит событие кнопки (эта кнопка - первая кнопка на странице).

Я пытался создатькнопка, которая ничего не делает и записывает это в 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" той кнопке, которую я создал.Это тоже не сработало.

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

Ответы [ 3 ]

37 голосов
/ 12 августа 2010

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

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

<asp:Panel id="pnlDefaultButton" runat="server" DefaultButton="btnOK">
    <!-- All controls here including: -->
    <asp:Button id="btnOK" runat="server" Text="OK" />
</asp:Panel>
8 голосов
/ 08 февраля 2014

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

UseSubmitBehavior="false"
0 голосов
/ 20 февраля 2014

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

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