Przejdź do treści

Formularze - HTML

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>
gdzie jako "nazwa" należy wpisać nazwę danego pola (np. skróconą treść pytania), która nie powinna być jednak zbyt długa! Zostanie ona później wysłana wraz z formularzem.

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.

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">
W miejsce tekstu: "odpowiedź domyślna" można wpisać domyślną treść danej odpowiedzi. Zostanie ona dołączona do formularza, jeśli użytkownik nie wpisze innej.

Przykład <input text value>

Długość pola <input text size>

<input type="text" name="nazwa" size="k">
gdzie jako "k" można podać długość pola w ilości znaków, które będą w nim jednocześnie widoczne (domyślnie 20 - w Internet Explorerze). Oczywiście użytkownik będzie mógł wpisać do takiego pola dowolną liczbę znaków, niezależnie od atrybutu size="...".

Przykład <input text size>

size="10"

Maksymalna ilość znaków, które można wpisać do pola <input text maxlength>

<input type="text" name="nazwa" maxlength="n">
gdzie jako "n" podaj maksymalną dopuszczalną ilość liter, z których może składać się odpowiedź - użytkownik nie będzie mógł wpisać dłuższego tekstu.

Przykład <input text maxlength>

maxlength="10"

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>

Tekstu w tym polu nie można usunąć ani zmienić (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>

To pole jest zablokowane (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">
gdzie "n" to liczba z przedziału od 0 do 32767.

Przy ustalaniu ostatecznej kolejności aktywacji istnieje kilka zasad:

  1. Elementy z atrybutem tabindex="0" (zero) zachowują się identycznie, jakby w ogóle nie miały przypisanego tego atrybutu.
  2. 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.
  3. Elementy z taką samą wartością tabindex="..." są aktywowane w kolejności występowania w kodzie źródłowym.
  4. Możliwe jest opuszczanie wybranych liczb w numeracji tabindex="...". Nie ma również wymogu rozpoczynania numeracji od 0 ani od 1.
  5. Elementy zablokowane atrybutem disabled nie są uwzględniane w porządku aktywacji, ponieważ w ogóle nie można ich wybrać.
  6. 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

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.

Komentarze

Zobacz więcej komentarzy

Facebook