Limit znaków w HTML


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.


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" />

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. ;)


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.


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')
})
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.