powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как сделать Button.Click по Enter'у в TextBox, а не просто отправку формы
7 сообщений из 7, страница 1 из 1
Как сделать Button.Click по Enter'у в TextBox, а не просто отправку формы
    #32556309
slydiman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
код следующий

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
<script runat="server">
    Sub OnClick_SearchButton1(sender As Object, e As EventArgs)
...
    End Sub
</script>
...
<form id="Form1" method="post" runat="server">
  <asp:TextBox ID="SearchText1" runat="server" />	                
  <asp:Button ID="SearchButton1" OnClick="OnClick_SearchButton1" Text="Искать" runat="server" />
</form>

при нажатии на кнопку форма постится и отрабатывается процедура OnClick_SearchButton1

при вводе текста в SearchText1 и нажатии Enter, форма постится, но OnClick_SearchButton1 естественно не выполняется

Попробовал приделать клиентский скрипт, чтобы по Enter'у эмулировать Click на кнопке:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<script runat="server">
    Sub OnClick_SearchButton1(sender As Object, e As EventArgs)
...
    End Sub
</script>
...
<form id="Form1" method="post" runat="server">
  <script language=jscript>	
    function DoSearchText(){
      if( window.event.keyCode ==  13  ){
        SearchButton1.click();
        window.event.returnValue = false;
      }
    }
  </script>
  <asp:TextBox ID="SearchText1" onKeyPress="DoSearchText() runat="server" />                
  <asp:Button ID="SearchButton1" OnClick="OnClick_SearchButton1" Text="Искать" runat="server" />
</form>

По Enter'у cкрипт отрабатывает, форма постится путем эмуляции клика по кнопке, но на сервере OnClick_SearchButton1 все равно не выполняется.

Как быть?
...
Рейтинг: 0 / 0
Как сделать Button.Click по Enter'у в TextBox, а не просто отправку формы
    #32556424
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вызвать метод в Page_Load

if (!Page.IsPostBack)
{
OnClick_SearchButton1();
}
...
Рейтинг: 0 / 0
Как сделать Button.Click по Enter'у в TextBox, а не просто отправку формы
    #32556633
Ihor Bobak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
slydimanпри вводе текста в SearchText1 и нажатии Enter, форма постится, но OnClick_SearchButton1 естественно не выполняется

есть в IE такой баг: если на форме - один input type=text, то по нажатии Enter форма пойдет на сервер без какой либо информации о нажатой кнопке.

Можешь проверить с помощью HttpWatch.

Лечится так: <form onsubmit="return false;">
...
Рейтинг: 0 / 0
Как сделать Button.Click по Enter'у в TextBox, а не просто отправку формы
    #32556644
slydiman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hDrummerВызвать метод в Page_Load

if (!Page.IsPostBack)
{
OnClick_SearchButton1();
}

Это абсолютно не приемлемо, так как в этом же .aspx файле содержится куча других кнопок и пр. Некоторые из них лежат в панельках и отображаются в нужное время. Так что Page_Load может быть вызван и другими событиями.

Кстати в предложенном способе ! перед Page.IsPostBack не нужен.
...
Рейтинг: 0 / 0
Как сделать Button.Click по Enter'у в TextBox, а не просто отправку формы
    #32556661
slydiman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ihor BobakЛечится так: <form onsubmit="return false;">

Чуть подробнее пожалуйста...

Если сделать форму
Код: plaintext
1.
2.
<form onsubmit="return false;" id="form1" runat="server">
...
</form>
то она вообще перестает реагировать и на клик по кнопке и на нажатие Enter в поле ввода (TextBox)

Это уже не лечение, это убийство!
...
Рейтинг: 0 / 0
Как сделать Button.Click по Enter'у в TextBox, а не просто отправку формы
    #32556694
Ihor Bobak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пардон :)

Забыл упомянуть еще один факт. Мы не используем стандартных контролов, которые рендерят input type=submit/image. У нас свои, которые на onclick все делают __doPostBack(...).

И у нас своя форма (то есть, контрол, который рендерит <form>).

так что для нас это лечение.
...
Рейтинг: 0 / 0
Как сделать Button.Click по Enter'у в TextBox, а не просто отправку формы
    #32556758
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЭто абсолютно не приемлемо, так как в этом же .aspx файле содержится куча других кнопок и пр.
Обытом речь не шла.

авторКстати в предложенном способе ! перед Page.IsPostBack не нужен.
Нужен - чтобы метод не вызывался автоматом при первой загрузке страницы.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как сделать Button.Click по Enter'у в TextBox, а не просто отправку формы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]