Limite di caratteri in HTML


Risposte:


133

Esistono 2 soluzioni principali:

Quello HTML puro:

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

Quello JavaScript (allegalo a un evento onKey):

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

Ma comunque, non esiste una buona soluzione. Non puoi adattarti alla cattiva implementazione HTML di ogni cliente, è una battaglia impossibile da vincere. Ecco perché è molto meglio controllarlo sul lato server, con uno script PHP / Python / qualsiasi cosa.


27
Controlla sul server come controllo finale di integrità, ma aggiungi miglioramenti lato client se puoi farlo; rende l'esperienza utente più ricca.
Rob il

43

c'è un attributo maxlength

<input type="text" name="textboxname" maxlength="100" />

1
Questo è vero, ma alcuni client non lo controllano. Questo è particolarmente vero per i client basati su telefoni cellulari.
Drejc

Esistono anche modi per rimuoverli. Ad esempio, l'estensione per sviluppatori Web per Firefox ha una funzione Rimuovi lunghezze massime.
Sam Hasler

Con Chrome e il suo kit per sviluppatori (fornito con il browser) è semplice rimuovere queste cose nell'html
AntonioCS

12

Oltre a quanto sopra, vorrei sottolineare che la convalida lato client (codice HTML, javascript, ecc.) Non è mai abbastanza. Controlla anche la lunghezza lato server, o semplicemente non controllare affatto (se non è così importante che le persone possano essere autorizzate a aggirarlo, allora non è abbastanza importante da giustificare alcun passaggio per impedirlo).

Inoltre, ragazzi, lui (o lei) ha detto HTML, non XHTML. ;)


sono d'accordo. si possono POST i dati direttamente in un sito web utilizzando uno strumento di scripting, quindi in tal caso maxlength e altre convalide lato browser non sono infallibili
cruizer

oppure usa firebug e rimuovi l'attributo maxlength.
Zach


1

Per l'elemento <input> c'è l'attributo maxlength:

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

(a proposito, il tipo è "text", non "textbox" come stanno scrivendo altri), tuttavia, devi usare javascript con <textarea> s. In ogni caso, la lunghezza dovrebbe essere controllata comunque sul server.


0

puoi impostare maxlength con jquery che è molto veloce

jQuery(document).ready(function($){ //fire on DOM ready
 setformfieldsize(jQuery('#comment'), 50, 'charsremain')
})
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.