Limit znaków w HTML

95

Jak nałożyć limit znaków na tekst wprowadzany w HTML?

Iwasakabukiman
źródło

Odpowiedzi:

133

Istnieją 2 główne rozwiązania:

Czysty HTML:

<input type="text" id="Textbox" name="Textbox" maxlength="10" />

JavaScript (dołącz go do zdarzenia onKey):

function limitText(limitField, limitNum) {
    if (limitField.value.length > limitNum) {
        limitField.value = limitField.value.substring(0, limitNum);
    } 
}

Ale i tak nie ma dobrego rozwiązania. Nie możesz dostosować się do złej implementacji HTML u każdego klienta, to niemożliwa walka o zwycięstwo. Dlatego o wiele lepiej jest sprawdzić to po stronie serwera za pomocą skryptu PHP / Python / cokolwiek.

e-satis
źródło
27
Sprawdź serwer jako ostateczny test poprawności, ale dodaj ulepszenia po stronie klienta, jeśli możesz to zrobić; zapewnia bogatsze wrażenia użytkownika.
Rob
43

istnieje atrybut maxlength

<input type="text" name="textboxname" maxlength="100" />
krążownik
źródło
1
To prawda, ale niektórzy klienci tego nie sprawdzają. Jest to szczególnie prawdziwe w przypadku klientów korzystających z telefonów komórkowych.
Drejc
Istnieją również sposoby ich usunięcia. Na przykład rozszerzenie Firefox Web Developer ma funkcję Usuń maksymalne długości.
Sam Hasler,
Dzięki Chrome i jego zestawowi programistycznemu (który jest dostarczany z przeglądarką) można łatwo usunąć takie rzeczy w html
AntonioCS
12

Oprócz powyższego chciałbym zwrócić uwagę, że walidacja po stronie klienta (kod HTML, javascript itp.) Nigdy nie wystarczy. Sprawdź także długość po stronie serwera lub po prostu nie sprawdzaj jej wcale (jeśli nie jest tak ważne, aby ludzie mogli go ominąć, to nie jest wystarczająco ważne, aby naprawdę uzasadniać jakiekolwiek kroki, aby temu zapobiec).

Poza tym, koledzy, on (lub ona) powiedział HTML, a nie XHTML. ;)

Devin Jeanpierre
źródło
zgadzam się. dane można POST bezpośrednio na stronie internetowej za pomocą jakiegoś narzędzia skryptowego, więc w takim przypadku maxlength i inne walidacje po stronie przeglądarki nie są niezawodne
cruizer
lub użyj firebuga i usuń atrybut maxlength.
Zach
1

Dla elementu <input> istnieje atrybut maxlength:

<input type="text" id="Textbox" name="Textbox" maxlength="10" />

(nawiasem mówiąc, typ to „tekst”, a nie „pole tekstowe”, jak piszą inni), jednak musisz użyć javascript z <textarea> s. Tak czy inaczej, długość należy sprawdzić na serwerze.

pilsetnieks
źródło
0

możesz ustawić maxlength za pomocą jquery, które jest bardzo szybkie

jQuery(document).ready(function($){ //fire on DOM ready
 setformfieldsize(jQuery('#comment'), 50, 'charsremain')
})
shekh danishuesn
źródło