Często zdarza się, iż wrzucamy na naszą WebForm kontrolkę TextBox, a zaraz obok niej przycisk, który wywołuje jakąś akcję związaną z treścią wpisaną do kontrolki, np. pole wyszukiwania.
Co zrobić, żeby użytkownik zamiast klikania w przycisk wcisnął Enter po wpisaniu treści do pola TextBox ?
Poniżej przedstawię dwa sposoby:
Sposób 1 – kontrolka Panel
Umieszczamy obydwie kontrolki wewnątrz asp:Panel, której atrybut defaultButton ustawiamy na nasz przycisk.
Sposób 2 - JavaScript
Na kontrolce TextBox dodajemy obsługę zdarzenia OnClick (np. w zdarzeniu PageLoad).
Co zrobić, żeby użytkownik zamiast klikania w przycisk wcisnął Enter po wpisaniu treści do pola TextBox ?
Poniżej przedstawię dwa sposoby:
Sposób 1 – kontrolka Panel
Umieszczamy obydwie kontrolki wewnątrz asp:Panel, której atrybut defaultButton ustawiamy na nasz przycisk.
| ASP | | kopiuj kod | | ? |
| 1 | <asp:panel defaultbutton="btnSearch runat="> |
| 2 | <asp:textbox id="textbox1" runat="server"> |
| 3 | <asp:button id="btnSearch" runat="server" text="Szukaj"> |
| 4 | </asp:button></asp:textbox></asp:panel> |
Sposób 2 - JavaScript
Na kontrolce TextBox dodajemy obsługę zdarzenia OnClick (np. w zdarzeniu PageLoad).
| Javascript | | kopiuj kod | | ? |
| 01 | textbox1.Attributes.Add("onkeydown", |
| 02 | @"if(event.which || event.keyCode){ |
| 03 | if ((event.which == 13) || (event.keyCode == 13)) { |
| 04 | document.getElementById('" + btnSearch.UniqueID.Replace('$', '_') + |
| 05 | "').click(); |
| 06 | return false; |
| 07 | } |
| 08 | } else { |
| 09 | return true |
| 10 | }; "); |
Komentarze (1) do wpisu 'TextBox i przycisk Enter (OnClick)'
-
Zamiast btnSearch.UniqueID.Replace(‘$’, ‘_’) można użyć btnSearch.ClientIDSeba on 14 sie 2009 o 11:12