


Ausführliche Erklärung des seltsamen Verhaltens des Attributs maxlength in textarea_javascript-Skills
HTML5 hat viele Änderungen an Formularen mit sich gebracht, wie zum Beispiel die maximale Länge, über die wir heute sprechen werden. Dieses Attribut kann die maximale Anzahl der in das Eingabefeld eingegebenen Zeichen begrenzen. Praktischer ist, dass dies auch für den eingefügten Inhalt möglich ist werden automatisch basierend auf der Anzahl der Zeichen gekürzt.
Ich habe kürzlich eine Anfrage erhalten, die Benutzer auf die Eingabe von maximal 600 Zeichen zu beschränken (chinesische Zeichen und Buchstaben werden nicht unterschieden), und der eingefügte Inhalt muss außerdem automatisch abgeschnitten werden. Nach der Eingabe von 600 Zeichen ist keine Eingabe mehr möglich.
Das erste, was mir einfiel, war maxlength, was im Grunde den Anforderungen entspricht, aber es gibt immer noch einige seltsame Verhaltensweisen.
Sehen Sie sich den folgenden Code an:
<textarea name="text" id="text" maxlength="600"></textarea> <p><span id="already"></span>/<span>600</span></p> text.oninput = function() { already.textContent = text.value.length; }
Der obige Code begrenzt die Anzahl der Eingabezeichen auf 600 und überwacht die Benutzereingabe über oninput. Keydown wird nicht verwendet, da Keydown nur die Tastatureingabe des Benutzers überwachen kann und nicht auf das Einfügen reagiert. . . oninput kann es tun.
Zu diesem Zeitpunkt können Sie nach der direkten Eingabe von 600 Wörtern nicht mehr einige löschen und einige erneut eingeben, und die Leistung wird normal sein. Das Seltsame ist, dass, wenn Sie viel Text in einen Textbereich einfügen, dieser aufgrund der Existenz von maxlength automatisch abgeschnitten wird. Wenn Sie zu diesem Zeitpunkt einige Zeichen löschen, sind im Textbereich genau 600 Zeichen vorhanden und versuchen Sie dann erneut eine Eingabe, Sie werden Folgendes finden:
Heilige Scheiße, ich kann nicht tippen! ! ! Wenn Sie weitere löschen, können Sie mit der Eingabe fortfahren, aber! ! ! Als ich weniger als 600 Zeichen eingegeben hatte, konnte ich plötzlich nicht mehr eingeben! ! !
Das passiert unter Chrome und meinem Android-Rechner. . Der Grund ist noch nicht bekannt. Nach dem Testen der Eingabe tritt diese Situation nicht auf. Wenn der Wert des Attributs maxlength kleiner ist, tritt diese Situation nicht auf, z. B. 10. . .
In diesem Fall ist maxlength einfach selbst mehr Code zu schreiben. Da oninput so flexibel ist, verwenden Sie es.
Ändern Sie den Code, entfernen Sie das Attribut maxlength von textarea und überwachen Sie den Wert von textarea mithilfe der Eingabe. Wenn er 600 überschreitet, wird er automatisch abgeschnitten, wodurch die Illusion entsteht, dass eine Eingabe unmöglich ist.
text.oninput = function() { if(text.value.length >= 600) { text.value = text.value.substr(0,600); } already.textContent = text.value.length; }
Wenn Sie sich keine Sorgen machen, können Sie das Keydown-Ereignis weiterhin überwachen und das Standardereignis nach der Eingabe von mehr als 600 Zeichen verhindern. Es gibt jedoch mehrere Tasten, die nicht gesperrt werden können: Rücktaste und Wagenrücklauf löschen:
text.onkeydown = function() { if(text.value.length >= 600) { // 删除:46 退格:8 回车:13 if (!(e.which == '46' || e.which == '8' || e.which == '13')) { e.preventDefault(); } } }
IE8 und niedriger unterstützen weder das Attribut maxlength noch oninput, verfügen aber über eine leistungsfähigere Methode: onpropertychange.
Im Folgenden wird erläutert, wie Textarea das Maxlength-Attribut über ein Ende des Codes implementiert
<script language="javascript" type="text/javascript"> function textlen(x,y){ var thelength = x.value.length; window.status=thelength+' of '+y+' maximum characters.'; } function maxtext(x,y){ tempstr = x.value if(tempstr.length>y){ x.value = tempstr.substring(0,y); } textlen(x,y); } </script> <form name="myform"> <textarea name="mytextarea" cols="45" rows="3" wrap="virtual" onkeypress="return(this.value.length<20)" onkeydown="textlen(this,20)" onkeyup="textlen(this,20)" onblur="maxtext(this,20)"> </textarea> </form>

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Häufig gestellte Fragen und Lösungen für das Ticket-Ticket-Ticket-Ticket in Front-End im Front-End-Entwicklungsdruck ist der Ticketdruck eine häufige Voraussetzung. Viele Entwickler implementieren jedoch ...

Es gibt kein absolutes Gehalt für Python- und JavaScript -Entwickler, je nach Fähigkeiten und Branchenbedürfnissen. 1. Python kann mehr in Datenwissenschaft und maschinellem Lernen bezahlt werden. 2. JavaScript hat eine große Nachfrage in der Entwicklung von Front-End- und Full-Stack-Entwicklung, und sein Gehalt ist auch beträchtlich. 3. Einflussfaktoren umfassen Erfahrung, geografische Standort, Unternehmensgröße und spezifische Fähigkeiten.

JavaScript ist der Eckpfeiler der modernen Webentwicklung. Zu den Hauptfunktionen gehören eine ereignisorientierte Programmierung, die Erzeugung der dynamischen Inhalte und die asynchrone Programmierung. 1) Ereignisgesteuerte Programmierung ermöglicht es Webseiten, sich dynamisch entsprechend den Benutzeroperationen zu ändern. 2) Die dynamische Inhaltsgenerierung ermöglicht die Anpassung der Seiteninhalte gemäß den Bedingungen. 3) Asynchrone Programmierung stellt sicher, dass die Benutzeroberfläche nicht blockiert ist. JavaScript wird häufig in der Webinteraktion, der einseitigen Anwendung und der serverseitigen Entwicklung verwendet, wodurch die Flexibilität der Benutzererfahrung und die plattformübergreifende Entwicklung erheblich verbessert wird.

Wie fusioniere ich Array -Elemente mit derselben ID in ein Objekt in JavaScript? Bei der Verarbeitung von Daten begegnen wir häufig die Notwendigkeit, dieselbe ID zu haben ...

Eingehende Diskussion der Ursachen des Unterschieds in der Konsole.log-Ausgabe. In diesem Artikel wird die Unterschiede in den Ausgabeergebnissen der Konsolenfunktion in einem Code analysiert und die Gründe dafür erläutert. � ...

Diskussion über die Realisierung von Parallaxe -Scrolling- und Elementanimationseffekten in diesem Artikel wird untersuchen, wie die offizielle Website der Shiseeido -Website (https://www.shiseeido.co.jp/sb/wonderland/) ähnlich ist ...

JavaScript zu lernen ist nicht schwierig, aber es ist schwierig. 1) Verstehen Sie grundlegende Konzepte wie Variablen, Datentypen, Funktionen usw. 2) Beherrschen Sie die asynchrone Programmierung und implementieren Sie sie durch Ereignisschleifen. 3) Verwenden Sie DOM -Operationen und versprechen Sie, asynchrone Anfragen zu bearbeiten. 4) Vermeiden Sie häufige Fehler und verwenden Sie Debugging -Techniken. 5) Die Leistung optimieren und Best Practices befolgen.

Erforschen Sie die Implementierung der Funktion des Bedien- und Drop-Einstellungsfunktion der Panel ähnlich wie VSCODE im Front-End. In der Front-End-Entwicklung wird VSCODE ähnlich wie VSCODE implementiert ...
