Pole tekstowe <input "text">
Jak wprowadzić pole tekstowe, w którym można wpisać np. imię i nazwisko? W jaki sposób zablokować pole przed wpisywaniem? Jak zmienić kolejność aktywowania elementów przy pomocy tabulatora?
Pole tekstowe <input "text">
<form action="..."> <input type="text" name="nazwa"> </form>lub
<form action="..."> <input name="nazwa"> </form>
Atrybut name="..."
, powinien być unikalny w obrębie formularza, tzn. żadne dwa pytania w tym samym formularzu nie powinny mieć takiej samej nazwy.
Typ "text" jest podstawowym rodzajem pola tekstowego. Ma ono wysokość jednej linii tekstu i określoną długość. Można do niego wpisywać tekst, który później zostanie wysłany wraz z formularzem, jako odpowiedź na zadane pytanie.
UWAGA! Wszystkie pola (dowolnego typu), które mają się znaleźć w formularzu, należy umieszczać pomiędzy tymi samymi znacznikami <form>
oraz </form>
(zobacz: Ramy formularza). Oczywiście w pojedynczym dokumencie można umieścić kilka formularzy - wtedy wstawiamy klika znaczników <form>...</form>
, dla każdego formularza osobno.
Jeśli chcesz dowiedzieć się więcej na temat jeszcze bardziej zaawansowanych funkcji pola tekstowego, zobacz rozdział HTML5: Autouzupełnianie, Kapitalizacja tekstu, Blokada autouzupełniania, Zogniskowanie, Klawisz Enter, Tryb wpisywania, Walidacja pól formularza, Podpowiedź pola formularza, Pole obowiązkowe, Sprawdzanie pisowni.
Wygląd pól formularza można zdefiniować bardziej precyzyjnie dzięki możliwościom CSS - np. przy pomocy zamieszczonego generatora.
Przykład <input "text">
Zwróć uwagę, że po kliknięciu myszką wewnątrz poniższego pola, możesz wpisać tam jakiś tekst.
Odpowiedź domyślna <input "text" value>
<input type="text" name="nazwa" value="odpowiedź domyślna">
Przykład <input "text" value>
Długość pola <input "text: size>
<input type="text" name="nazwa" size="k">
size="..."
.Przykład <input "text" size>
Maksymalna ilość znaków, które można wpisać do pola <input "text" maxlength>
<input type="text" name="nazwa" maxlength="n">
W języku HTML5 możliwe jest również ustalenie minimalnej długości pola: minlength="..."
.
Przykład <input "text" maxlength>
Pole tylko do odczytu <input "text" readonly>
<input type="text" name="nazwa" readonly>
Wstawienie atrybutu readonly
powoduje, że tekstu zapisanego domyślnie w tym polu (atrybut value="odpowiedź domyślna"
), nie będzie można modyfikować. Wartość pola jest jednak normalnie przesyłana w formularzu.
Przykład <input "text" readonly>
Blokada pola <input "text" disabled>
<input type="text" name="nazwa" disabled>
Wstawienie atrybutu disabled
powoduje zablokowanie pola.
UWAGA!
Zablokowane pole w ogóle nie jest przesyłane z danymi formularza.
Przykład <input "text" disabled>
Tabulator <input "text" tabindex>
Wiele osób wypełniając formularze przenosi się do kolejnych pól nie za pomocą myszki, ale klawisza tabulatora (Tab), a powraca do poprzedniego pola za pomocą kombinacji Shift+Tab. Taki sposób wypełniania formularzy znacznie przyspiesza proces, ponieważ nie trzeba się odrywać od klawiatury, aby przenieść dłoń na myszkę.
Normalnie porządek aktywacji kolejnych pól formularza z użyciem tabulatora jest zgodny z porządkiem umieszczenia kontrolek formularza w kodzie źródłowym strony. Zwykle jest to zupełnie naturalna kolejność. Czasami jednak chcielibyśmy ją zmienić. Na przykład wyobraźmy sobie, że pola formularza są umieszczone w kilku kolumnach i wierszach tabeli. W takim przypadku kolejność aktywacji będzie następowała wierszami (poziomo), ponieważ w takiej kolejności są umieszczone komórki tabeli w kodzie źródłowym. Jeśli jednak ze względu na budowę naszego formularza logiczniej by było aktywować kontrolki kolumnami (pionowo), można to zrobić dodając dla wszystkich pól odpowiedni atrybut tabindex="..."
:
<input type="text" name="nazwa" tabindex="n">
Przy ustalaniu ostatecznej kolejności aktywacji istnieje kilka zasad:
- Elementy z atrybutem
tabindex="0"
(zero) zachowują się identycznie, jakby w ogóle nie miały przypisanego tego atrybutu. - Elementy bez atrybutu
tabindex="...
" są aktywowane zawsze po tych, które posiadają niezerową wartość tego atrybutu - w kolejności występowania w kodzie źródłowym dokumentu. - Elementy z taką samą wartością
tabindex="...
" są aktywowane w kolejności występowania w kodzie źródłowym. - Możliwe jest opuszczanie wybranych liczb w numeracji
tabindex="...
". Nie ma również wymogu rozpoczynania numeracji od 0 ani od 1. - Elementy zablokowane atrybutem
disabled
nie są uwzględniane w porządku aktywacji, ponieważ w ogóle nie można ich wybrać. - Elementy tylko do odczytu (
readonly
) są normalnie aktywowane, ale oczywiście nie można do nich nic wpisać.
Atrybut tabindex="..."
można zastosować dla znaczników: A, AREA, BUTTON, TEXTAREA, SELECT, INPUT oraz OBJECT.
Przykład <input "text" tabindex>
Aktywacja elementów kolumnami, a nie wierszami:
<table> <tr> <td><input type="text" name="nazwa1" tabindex="1"></td> <td><input type="text" name="nazwa4" tabindex="4"></td> <td><input type="text" name="nazwa7" tabindex="7"></td> </tr> <tr> <td><input type="text" name="nazwa2" tabindex="2"></td> <td><input type="text" name="nazwa5" tabindex="5"></td> <td><input type="text" name="nazwa8" tabindex="8"></td> </tr> <tr> <td><input type="text" name="nazwa3" tabindex="3"></td> <td><input type="text" name="nazwa6" tabindex="6"></td> <td><input type="text" name="nazwa9" tabindex="9"></td> </tr> </table>
Pytania i odpowiedzi <input "text, number">
Jak wstawić pole tekstowe w HTML?
W tym celu do dokumentu HTML wewnątrz znacznika FORM należy wstawić odpowiedni znacznik: <input type="text" name="...">
.
Jak zrobić pole numeryczne w HTML?
Pole numeryczne jest odmianą pola tekstowego, w którym jednak można wpisywać tylko liczby. Aby umieścić go wewnątrz formularza, wystarczy ustawić mu odpowiedni typ: <input type="number" name="...">
.
Jaki atrybut ustala szerokość pola tekstowego?
Domyślnie każde pole tekstowe ma ustaloną szerokość, która może się różnić w zależności od przeglądarki. Aby ustawić szerokość pola np. na 10 znaków, można się posłużyć następującym kodem: <input type="text" name="..." size="10">
. Warto pamiętać, że jeśli użytkownik będzie chciał wpisać w takim polu tekst dłuższy niż 10 znaków, nadal będzie mógł to zrobić. W takim przypadku w miarę wpisywania tekstu zawartość pola będzie się przesuwać w lewo.
Przeglądarki
Chrome | Firefox | Edge | Opera | Safari | |
---|---|---|---|---|---|
<input type="text"> | 1 2008-12-11 | 1 2004-11-09 | 12 2015-07-29 | 15 2013-07-02 | 1 2003-06-23 |