2008-09-22 11 views

Répondre

127

Il y a 2 solutions principales:

Le HTML pur un:

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

Le JavaScript un (l'attacher à un OnKey événement):

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

Mais de toute façon, il y a pas de bonne solution. Vous ne pouvez pas vous adapter à la mauvaise implémentation HTML de chaque client, c'est un combat impossible à gagner. C'est pourquoi il est préférable de le vérifier côté serveur, avec un script PHP/Python/quelquechose.

+25

Vérifiez sur le serveur comme vérification finale, mais ajoutez l'amélioration côté client si vous pouvez le faire; cela rend l'expérience utilisateur plus riche. – Rob

+1

Bien sûr, plus de travail, mais certainement le meilleur moyen d'y aller. –

41

il y a un maxlength attribut

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

Cela est vrai, mais certains clients ne vérifient pas. Ceci est particulièrement vrai pour les clients basés sur le téléphone mobile. – Drejc

+0

Il existe également des moyens de les supprimer. Par exemple, l'extension Firefox Web Developer a une fonction Supprimer les longueurs maximales. –

+0

Avec le chrome et son kit de développement (qui vient avec le navigateur), il est simple d'enlever de telles choses dans le – AntonioCS

5

utiliser l'attribut "maxlength" comme d'autres l'ont dit.

Si vous devez mettre une longueur maximale de caractères sur une zone de texte, vous devez passer à Javascript. Jetez un coup d'oeil ici: How to impose maxlength on textArea in HTML using JavaScript

+0

html le lien ne fonctionne pas ... – TlonXP

+0

vérifier ce lien dans StackOverflow: http://stackoverflow.com/questions/1125482/comment-imposer-maxlength-sur-textarea-en-html-using-javascript – TlonXP

11

En plus de ce qui précède, je tiens à souligner que la validation côté client (code HTML, javascript, etc.) n'est jamais suffisante. Vérifiez également la longueur côté serveur, ou ne vérifiez pas du tout (si ce n'est pas si important que les gens puissent être autorisés à contourner cela, alors ce n'est pas assez important pour justifier vraiment des mesures pour éviter cela, non plus).

En outre, les gars, il (ou elle) a dit HTML, pas XHTML. ;)

+0

je suis d'accord. on peut POST les données directement dans un site web en utilisant un outil de script, dans ce cas maxlength et d'autres validations côté navigateur ne sont pas infaillibles – cruizer

+0

ou utiliser firebug et supprimer l'attribut maxlength. – Zach

1

Pour l'élément d'entrée < > il y a l'attribut maxlength: cependant,

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

(en passant, le type est que d'autres sont en train d'écrire "texte", pas "zone de texte"), vous avez utiliser javascript avec <textarea> s. De toute façon, la longueur devrait être vérifiée sur le serveur de toute façon.

0

vous pouvez définir maxlength avec jquery qui est très rapide

jQuery(document).ready(function($){ //fire on DOM ready 
setformfieldsize(jQuery('#comment'), 50, 'charsremain') 
}) 
Questions connexes