So legen Sie das maxlength-Attribut für h: inputTextarea fest
Wie kann ich begrenzen Sie die Länge der <h:inputTextarea>
? Für <h:inputText>
es funktioniert gut mit maxlength
Attribut. Dieses Attribut ist jedoch nicht verfügbar in <h:inputTextarea>
.
InformationsquelleAutor der Frage sergionni | 2011-02-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
HTML5 + JSF 2.2+
Wenn Sie mittels HTML5 und JSF 2.2+, geben Sie es als eine passthrough-Attribut.
HTML5 + JSF 2.0/2.1
Wenn Sie mithilfe von HTML5, aber nicht JSF 2.2 noch, verwenden Sie OmniFaces
Html5RenderKit
zu erkennen, die neuen HTML5-Attribute in JSF 2.0/2.1.HTML4
Wenn Sie auf HTML4, dann ist es schon mal nicht unterstützt, die von HTML selbst. Es ist nur auf unterstützten
<input>
element, nicht auf<textarea>
element. Das ist auch der Grund, warum es kein solches Attribut des JSF Darstellung dieses HTML-element. Sie benötigen zum lösen dieser Anforderung auf der client-Seite mit JS und/oder der server-Seite mit JSF. JS können Sie sofort überprüfen Sie die Länge und ignorieren alle anderen Zeichen. JSF ermöglicht es Ihnen zu überprüfen, sowie für den Fall, dass der client deaktiviert oder gehackt JS-code. Am besten wäre eine Kombination aus beiden.Vorausgesetzt, Sie haben eine
hier, wie Sie das tun konnte, die jQuery
InformationsquelleAutor der Antwort BalusC
InformationsquelleAutor der Antwort Jigar Joshi
BalusC s Antwort ist gut, aber bitte sein gewarnt, die JSF Validators aufgerufen, mit
f:validateLength maximum="2000" />
zählen neue-Zeile-Zeichen zweimal in der Erwägung, dass$textarea.val().length
wird nur zählen Sie Sie einmal. Sie müssen doppelt zählen der Zeilenumbruch bricht in Ihrem JavaScript-validator-wenn Sie möchten, dass die zwei Prüfungen zurück, die die gleichen Ergebnisse für mehrzeilige Eingaben.Ein Beispiel für dieses Problem wäre eine Eingabe von
"Hello\nWorld"
im text-Bereich, wo \n ist eigentlich ein Zeilenumbruch. Dies wäre gezählt als 12 Zeichen, die durch die JSF-validator, aber$textarea.val().length
würde nur zurück 11. Diese Diskrepanz wird offensichtlich noch schlimmer, wenn Sie sind, um dem Benutzer die Eingabe mehrerer Absätze.Obwohl Sie nicht über dasselbe Thema, die ersten paar Absätze von diese Artikel haben eine Erklärung für das JavaScript-Verhalten. Es gibt auch einige Kommentare über dieses genaue Problem, das von nutzen sein kann.
InformationsquelleAutor der Antwort user1018494