Maximale Länge für mehrzeiliges Textfeld angeben
Ich versuche, asp:
<asp:TextBox ID="txtInput" runat="server" TextMode="MultiLine"></asp:TextBox>
Ich soll eine Methode zu geben, die maxlength
Eigenschaft, aber anscheinend gibt es keine Art und Weise möglich, für einen multiline textbox
. Ich habe versucht, verwenden Sie JavaScript für die onkeypress
Veranstaltung:
onkeypress="return textboxMultilineMaxNumber(this,maxlength)"
function textboxMultilineMaxNumber(txt, maxLen) {
try {
if (txt.value.length > (maxLen - 1)) return false;
} catch (e) { }
return true;
}
Zwar wunderbar funktioniert, das problem mit diesem JavaScript-Funktion ist, dass nach dem schreiben Zeichen, die es nicht erlauben, zu löschen und ersetzen Sie jede von Ihnen, das Verhalten ist nicht erwünscht.
Hast du eine Idee, was könnte ich ändern im obigen code zu vermeiden, oder andere Wege, diesen zu umgehen?
InformationsquelleAutor der Frage Blerta | 2009-08-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
versuchen, dieses javascript:
Auf dem control aufrufen wie diesem:
Könnte man auch einfach verwenden Sie die checkSpecialKeys Funktion zu überprüfen die Eingabe auf Ihre javascript-Implementierung.
InformationsquelleAutor der Antwort Raúl Roa
Verwenden regular expression validator statt. Dies funktioniert auf der client-Seite mit JavaScript, aber auch, wenn JavaScript deaktiviert ist (wie die Länge der check wird auf dem server ausgeführt werden).
Das folgende Beispiel prüft, ob der eingegebene Wert zwischen 0 und 100 Zeichen lang:
Natürlich gibt es mehr komplexe regexs, die Sie verwenden können, um besser für Ihre Zwecke anpassen.
InformationsquelleAutor der Antwort Alex Angas
Roll your own:
Rufen wie diese:
InformationsquelleAutor der Antwort scottyboiler
halten Sie es einfach. Die meisten modernen Browser unterstützen eine maxlength-Attribut auf einen text-Bereich (DH im Lieferumfang enthalten), so fügen Sie einfach das Attribut im code-behind. Kein JS, kein Jquery, kein Erbe, benutzerdefinierten code, keine Aufregung, kein muss.
VB.Net:
C#
InformationsquelleAutor der Antwort Mike A.
verwenden Sie das benutzerdefinierte Attribut maxsize="100"
dadurch wird dargestellt, wie diese
InformationsquelleAutor der Antwort Ashwini Jindal
Anderen Weg, dies zu beheben, für diese Browser (Firefox, Chrome, Safari) unterstützen maxlength auf Texteingabefelder (HTML5), ohne javascript ist das ableiten einer Unterklasse von System.Web.UI.WebControls.TextBox-Klasse und überschreiben Sie die Methode Render. Dann in der überschriebenen Methode fügen Sie das maxlength-Attribut vor dem Rendern als normal.
InformationsquelleAutor der Antwort Keith K
InformationsquelleAutor der Antwort malinois
Habe ich versucht, unterschiedliche Ansätze, aber jeder hatte einige schwache Punkte (also mit Ausschneiden und einfügen-oder browser-Kompatibilität). Dies ist die Lösung, die ich bin gerade jetzt mit:
In diesem Fall, nenne ich multilineTextBoxKeyUp auf-Taste up-und multilineTextBoxKeyDown auf-Taste gedrückt:
InformationsquelleAutor der Antwort Sue Maurizio
Haben Sie einen Blick auf diese. Der einzige Weg, das zu lösen ist, indem javascript als du versucht hast.
EDIT:
Versuchen Sie, die Veranstaltung zu keypressup.
InformationsquelleAutor der Antwort Christian13467
Verwenden Sie HTML-textarea mit
runat="server"
Zugriff im server-Seite.Diese Lösung hat weniger Schmerzen als die Verwendung von javascript oder regex.
Hinweis: Für den Zugriff
Text
Eigenschaft im server-Seite verwenden, sollten Sietxt1.Value
statttxt1.Text
InformationsquelleAutor der Antwort Ali Gonabadi
Dinge haben sich geändert in HTML5:
ASPX:
C#:
Gerenderten HTML:
Metadaten für
Attributes
:InformationsquelleAutor der Antwort Kristopher
Folgenden Beispiel in JavaScript/Jquery-tun wird, -
InformationsquelleAutor der Antwort Nand kishor Kumar
Diesem snippet funktionierte in meinem Fall. Ich war auf der Suche nach der Lösung und dachte mir, dies zu schreiben, so dass es helfen kann, alle zukünftigen Leser.
ASP
Java Script
@Raúl Roa Antwort hat für mich gearbeitet, im Falle von copy/paste. während Sie dies tut.
InformationsquelleAutor der Antwort Afnan Ahmad
InformationsquelleAutor der Antwort Alex
Hier ist, wie wir es gemacht (hält den ganzen code in einem Ort):
Nur für den Fall jemand noch webforms im Jahr 2018..
InformationsquelleAutor der Antwort Alex