Установить фокус на кнопку из текстового поля?

В моей форме есть несколько текстовых полей и кнопок.

Допустим, txtBox1 находится рядом с btnSubmit1, txtBox2 находится рядом с btnSubmit2, txtBox3 находится рядом с btnSubmit3.

Как я могу установить фокус на btnSubmit3, когда пользователь начинает что-то вводить в txtBox3. Это означает ... если пользователь вводит текст в текстовое поле, программа будет знать, какую кнопку запускать, когда пользователь нажимает клавишу ввода.

Я использую код ASP.NET 2.0 и VB.net

Etienne 13.11.2008 12:56

Вы не можете установить фокус, когда начинаете печатать - иначе вы не сможете продолжать печатать. Вам нужно изменить кнопку по умолчанию для страницы.

DilbertDave 13.11.2008 12:58

Конечно, это имеет смысл ..... но как мне это сделать тогда, когда все 3 моих текстовых поля и кнопки находятся на одной странице? Мне нужно знать, в каком текстовом поле установить фокус в зависимости от того, где находится пользователь на текущей странице.

Etienne 13.11.2008 13:06
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
3
6 728
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

Если вы используете панель, у вас должна быть возможность установить кнопку по умолчанию. Я не уверен, что это: приложение для выигрышных форм или приложение для веб-форм, но вот как вы должны делать это с веб-формами:

<asp:Panel id = "panel1" runat = "server" DefaultButton = "Button1">
   <asp:TextBox id = "textbox1" runat = "server" />
   <asp:Button id = "Button1" runat = "server" Text = "Button 1" />
</asp:Panel>

<asp:Panel id = "panel2" runat = "server" DefaultButton = "Button2">
   <asp:TextBox id = "textbox2" runat = "server" />
   <asp:Button id = "Button2" runat = "server" Text = "Button 2" />
</asp:Panel>

<asp:Panel id = "panel3" runat = "server" DefaultButton = "Button3">
   <asp:TextBox id = "textbox3" runat = "server" />
   <asp:Button id = "Button3" runat = "server" Text = "Button 3" />
</asp:Panel>

Используйте JavaScript и добавьте размытие для этих текстовых полей ...

Пример:

<asp:TextBox ID = "t1" runat = "server" onblur = "CheckIfTextBox1ShouldFocusOnButton1();" />

:)

МММ, что я должен поместить в свой CheckIfTextBox1ShouldFocusOnButton1 ();

Etienne 13.11.2008 16:01

Я видел, как это делается вот так, но не просите меня объяснить это или сказать, какие плюсы и минусы по сравнению с любым другим методом. Просто подумал, что опубликую его, если он будет вам полезен.

// Fires a particular event when enter is pressed within a textbox.
function FireButtonOnEnter(controlID)
{
    if ((event.which ? event.which : event.keyCode) == 13)
    {
        window.event.returnValue = false;
        window.event.cancelBubble = true;
        document.getElementById(controlID).click();
    }
}

Вызовите это, добавив следующее для текстового поля ...

txtOrgName.Attributes.Add("OnKeyDown", String.Format("return FireButtonOnEnter('{0}');", btnOrgNameGo.ID));

Это простое решение, если вы знаете, что единственный используемый браузер - это IE.

Вам просто нужно добавить на страницу загрузки

txtBox1.Attributes.Add("onKeyPress", "javascript:if (event.keyCode == 13)
__doPostBack('" + btnSubmit1.UniqueID + "','')");

txtBox2.Attributes.Add("onKeyPress", "javascript:if (event.keyCode == 13)
__doPostBack('" + btnSubmit2.UniqueID + "','')");

txtBox3.Attributes.Add("onKeyPress", "javascript:if (event.keyCode == 13) 
__doPostBack('" + btnSubmit3.UniqueID + "','')");

Причина, по которой это работает только в IE, заключается в том, что в нем используется ключевое слово Javascript «событие», которое не работает в Firefox.

Привет, это не работает ..... это тот же код для VB.NET? Я знаю, что должен оставить ";" из.

Etienne 14.11.2008 09:43

Другие вопросы по теме