Имейте реальный главный скребок здесь: у Меня есть страница с несколькими средствами управления на нем и ASP:Button или два. Когда я нахожусь в управлении и поражаю клавишу Enter, это действует как, я нажал кнопку отправки, которую я на самом деле не хочу делать в данный момент.
Кнопка не находится в ASP:Panel с набором DefaultButton, она не имеет никакого атрибута OnClientClick, я не вижу JavaScript, который наблюдает за клавишей Enter... Почему это стреляет?
Если я создаю стандарт.ASPX страница и помещаю текстовое поле и кнопку на нем, выполняю его и поражаю клавишу Enter, кнопка проигнорирована, например, событие щелчка не стреляет. Это - поведение, которое я ожидаю, но не добираюсь.
Короче говоря, что еще могло заставить кнопку думать, что это - кнопка по умолчанию для страницы?
Спасибо,
Mike K.
Хорошо, вот моя тестовая разметка страницы:
<p><asp:Label ID="uxNameL" runat="server" AssociatedControlID="uxName">Name</asp:Label><asp:TextBox ID="uxName" runat="server"></asp:TextBox></p>
<p><asp:Button id="uxSubmit" runat="server" Text="Submit" onclick="uxSubmit_Click" /></p>
<asp:Literal ID="uxOut" runat="server" EnableViewState="false"></asp:Literal>
Вот то, что происходит в коде:
protected void uxSubmit_Click(object sender, EventArgs e)
{
uxOut.Text = uxName.Text;
}
То, когда я выполняю страницу, и ввожу некоторый текст в текстовом поле и нажимаю Enter - ха, было бы Вы смотреть на это: В IE 8 проигнорировано событие кнопки, например, страница просто перезагружает, но в FF, это отправляет форму...
Hmmmmm.
Я верю (и могу быть исправлен), но если у вас есть форма, с кнопкой ввода типа submit, то когда вы нажмете enter, она выстрелит этой кнопкой.
Если вы не хотите, чтобы клавиша Enter Trigger, возможно, вы можете добавить этот код JS на свою страницу:
if (window.event.keyCode == 13)
{
event.returnValue=false;
event.cancel = true;
}
Вам необходимо позвонить в эту функцию с обработчиком OnekeyDown на
Метка вашей страницы.
Так работает HTML, если содержит
, нажатие клавиши enter отправит форму.
Решение: Как предотвратить нажатие клавиши ENTER для отправки веб-формы? или здесь: http://www.cs.tut.fi/~jkorpela/forms/enter.html
Я на самом деле уже пытался поиграть с ним в Firebug, и кажется, что это стандартное поведение браузера, т.е. он не имеет ничего общего с javascript или ASP. Если у вас есть кнопка submit и текстовое поле, то оно просто отправляется при вводе. Чтобы избежать этого, измените тип ввода на кнопку.