Arbeiten mit Formularen in Knockout.js

Die Formulare sind ein wesentlicher Bestandteil jeder Anwendung oder Webseite, da sie eines der Mittel sind, mit denen wir Daten von Benutzern auf native Weise abrufen können. Dies macht die Verarbeitung dieser Daten zu einer sehr häufigen Aufgabe.

Mit Knockout.js können wir mit Ihrem Datenbindungsobjekt alle Elemente bearbeiten, die ein Formular bilden können. Auf diese Weise haben wir die Möglichkeit, Ereignisse zu validieren, auszulösen, Observablen zuzuweisen usw. Dadurch wird die Verarbeitung von Formularen auf der Clientseite möglich. Daher fügen wir eine zusätzliche Validierungsebene hinzu, bevor sie die Serverseite erreicht.

Anforderungen
Wir müssen nur Knockout.js in unserem System haben und für die zu erstellenden Anwendungen zugänglich sein, Berechtigungen zum Schreiben von Dateien, eine Internetverbindung, um die Bibliotheken zu erhalten, wenn wir sie nicht haben, und einen Texteditor wie Sublime Text oder NotePad ++ . Zum Ausführen der Anwendungen benötigen wir einen Apache- oder Nginx -Webserver in unserer Testumgebung.

Datenbindungen eines Formulars

Bevor wir zu Beispielen mit Fällen übergehen, die wir anwenden können, ist es sehr wichtig, die Datenbindungen zu kennen, die mit den Elementen der Form unserer Anwendung arbeiten können. Auf diese Weise können wir eine Vorstellung davon bekommen, was wir erreichen können und was nicht. Alle Möglichkeiten, mit denen wir die Ergebnisse erzielen können, die für die ordnungsgemäße Funktion unserer Anwendung erforderlich sind:

Datenbindungswert
Dies wird in den Eingabeelementen von Werten oder Auswahl verwendet, es kann sich um die Eingabe-, Text- oder Auswahlelemente handeln, mit denen wir den Wert des Elements in dem Moment erfassen, in dem wir es verwenden müssen.

Datenbindung textInput
Diese Bindung wird für die Elemente input und textarea verwendet. Ihre Funktion ist ähnlich wie value. Wenn wir jedoch eine beobachtbare Variable zuweisen, können wir die Werte erfassen, während der Benutzer mit dem Element interagiert, im Gegensatz zu dem Wert, der uns den Wert gibt, wenn the Elementänderungen, zum Beispiel, wenn Sie den Fokus verlieren.

Datenbindung überprüft
Es wird mit den Elementen des Kontrollkästchens Typ und den Optionsfeldern verwendet , da der Name darauf hinweist, dass wir feststellen oder wissen können, ob ein Element in einer Struktur ausgewählt ist, in der die oben genannten Elemente verwendet werden.

Datenbindungsoptionen
Mit dieser Bindung können wir ein ausgewähltes Element mit den Optionen füllen, die im Formular angezeigt werden. Dies ist ideal, wenn wir einen Optionskatalog dynamisch erstellen möchten.

Datenbindung von selectedOptions
Ebenfalls ohne das select-Element wird es verwendet, wenn die ausgewählten Optionen beim Festlegen der multi- Eigenschaft festgelegt werden müssen, da mehrere Optionen gleichzeitig ausgewählt werden müssen.

z.

Datenbindung aktivieren / deaktivieren
Es ermöglicht uns, eines der verschiedenen Elemente des Formulars zu aktivieren oder zu deaktivieren. Damit können wir ein Element extrahieren, wenn es nicht unter bestimmten Bedingungen im Ablauf der Anwendung verwendet werden muss, wobei enable verwendet wird, um es zu aktivieren, und disable , um es gegebenenfalls zu deaktivieren Wir kennen nicht die Bedeutung jedes Wortes.

Das Interessanteste an diesen Datenbindungen ist, dass sie auf zwei Arten funktionieren: Wenn sich ein Element ändert, können wir es in unserer Modellansicht empfangen und gegebenenfalls verarbeiten, aber auch, wenn wir eine beobachtbare haben und etwas tun möchten Die Anwendung auf das Formular können wir auch problemlos durchführen, solange wir die entsprechende Datenbindung für den Elementtyp des Formulars verwenden, da Knockout.js fehlerhafte Anweisungen nicht interpretiert, wie dies ein Browser mit HTML tun könnte .

See also  So installieren Sie VeraCrypt unter Kali Linux

Praktisches Beispiel

Sehen wir uns nun ein praktisches Beispiel an, wie wir alle Konzepte verwenden können, über die wir im vorherigen Abschnitt dieses Tutorials gesprochen haben. Wir werden ein Textarea- Typ-Element erstellen, das nur 140 Zeichen akzeptiert, da diese Einschränkung besteht. Wir müssen den Benutzer darüber informieren, wie viele Zeichen vorhanden sind Sie bleiben, während Sie schreiben.

Die Logik, die wir verwenden werden, ist sehr einfach. Wir werden den text-bind textInput in das textarea-Element unseres Formulars aufnehmen, dann in unserer Modellansicht als beobachtbar festlegen und damit beginnen, die Zeichen als das zu erfassen Benutzer tippt. Schließlich verwenden wir ein berechnetes Element, um eine Beobachtungsgröße zu erstellen, die aus der Summe der verbleibenden Zeichen besteht. Momentan werden wir den Benutzer nicht zwingen, weniger zu schreiben, wir informieren ihn nur über die Zeichen. Sehen wir uns den Code unseres Beispiels an:

 <! DOCTYPE html> <html lang = "de"> <head> <meta charset = "UTF-8"> <title> Formulare in knockout.js </ title> </ head> <body> <h4> Geben Sie ein text </ h4> <br/> <textarea data-bind = "textInput: textbox"> </ textarea> <br/> Verbleibende Zeichen: <span data-bind = "text: charactersResistant"> </ span> <script src = "js / knockout-3.3.0.js" type = "text / javascript"> </ script> <script> function ViewModel () {var self = this; self.boxText = ko.observable (''); self.limiteCategories = 140; self.caracteresRestantes = ko.computed (function () {return self.limiteCaracteres - self.cajaTexto (). length;}); }; var vistaModel = new ViewModel (); ko.applyBindings (viewModel); </ script> </ body> </ html> 

Es sollte beachtet werden, dass wir den Datenbindungswert nicht verwenden , da wir die Anzahl der Zeichen ändern müssen, die zum Zeitpunkt des Schreibens des Benutzers verbleiben. Andernfalls könnten wir nur die Anzahl zum Zeitpunkt der Übergabe an ein anderes Element angeben, was nicht der Fall wäre Optimal für das, was wir mit Knockout.js erreichen wollen . Es wird jedoch Fälle geben, in denen diese Art von Verhalten erforderlich ist. Alles hängt von den Anforderungen unserer Anwendung ab. Mal sehen, wie unser Beispiel aussieht, wenn wir es im Browser ausführen:

See also  So öffnen Sie den Datei-Explorer in Windows 10

form-knockout.jpg

Natürlich können wir hier nicht dynamisch einschätzen, wie unser niedriger Zähler ist, aber beim Schreiben unseres verbleibenden Zeichenzählers wird er aktualisiert, wie er im Textfeldelement des Formulars geschrieben ist:

form-knockout-2.jpg

Event Management

Ein weiterer Aspekt, den wir bei der Arbeit mit Formularen in unseren Anwendungen häufig benötigen, sind Ereignisse, da wir mit ihnen Aktionen auslösen können, wenn der Benutzer bestimmte Aktionen ausführt, z. B. einen Klick oder den Mauszeiger über einen bestimmten Abschnitt unseres HTML-Codes hält . Sehen wir uns einige Ereignisse an, die wir in unseren Formularen verwenden können:

Event einreichen
Dieses Ereignis kann nur im Formularelement verwendet werden und wird nur aktiviert, wenn der Benutzer das Formular entweder über eine Eingabeübertragung oder mit einer anderen Methode an den Server sendet.

Klicken Sie auf Ereignis
Dieses Ereignis ist ein alter Bekannter, da sein Name darauf hinweist, dass es durch Klicken auf ein Element in unserer Anwendung aktiviert wird.

HasFocus-Ereignis
Dieses Ereignis wird zu dem Zeitpunkt aktiviert, zu dem ein allgemeines Eingabe-, Textbereichs- oder Auswahlelement vom Benutzer ausgewählt wird und zu diesem Zeitpunkt aktiv ist.

Es besteht auch die Möglichkeit, andere im DOM verfügbare Ereignisse wie Mouseover und Tastendruck zu verwenden, um die Funktionalität unserer Modellansicht auf diese Ebenen zu erweitern.

Beispiel für Ereignisse

In der folgenden Übung wenden wir das Wissen über Ereignisse an, die wir erworben haben, erstellen ein kleines Formular, in dem wir eine Liste haben, und jedes Mal, wenn wir mit der Maus über eine Option fahren, wird ein Bild angezeigt Eine demonstrative Implementierung, die nicht für die Produktion geeignet ist. Sie hilft uns jedoch zu verstehen, woran wir gearbeitet haben.

See also  So installieren und konfigurieren Sie den DHCP-Server unter Ubuntu 19.04 und Ubuntu 18.04

In diesem Fall benötigen wir zusätzlich zur jQuery- Bibliothek von Knockout.js einige Effekte in unserer Anwendung. Daher ist es ideal, sie herunterzuladen und in demselben Ordner oder Verzeichnis zu speichern, in dem wir Knockout.js haben , oder sie möglicherweise von zu verwenden Ihre offizielle CDN Mal sehen, welchen Code wir brauchen:

 <! DOCTYPE html> <html lang = "de"> <head> <meta charset = "UTF-8"> <title> Formulare in knockout.js </ title> </ head> <body> <img id = " current_thing "/> <ul> <! - ko foreach: things -> <li data-bind =" Text: Beschreibung, Ereignis: {mouseover: $ parent.loadImage} "> </ li> <! - / ko -> </ ul> <script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.2/jquery.min.js"> </ script> <script src = "js /knockout-3.3.0.js "type =" text / javascript "> </ script> <script> -Funktion ViewModel () {var self = this; self.cosas = [{description: 'Unser Haus ist sehr luxuriös und deswegen gefällt es uns sehr gut', image: 'casa.jpg'}, {description: 'Unser Auto ist sehr schnell und verfügt über modernste Technologie', image: 'auto.jpg'}]; self.loadImage = function (data, event) {$ ('# thing_actual'). attr ('src', data.image); }; }; var vistaModel = new ViewModel (); ko.applyBindings (viewModel); </ script> </ body> </ html> 

Hier haben wir einfach eine Liste von Dingen mit einer Beschreibung und einem Bild erstellt. Auf dieses Bild kann von der Anwendung, die wir in diesem Fall ausgewählt haben, überall zugegriffen werden. Dann erstellen wir eine Funktion, die das hinzufügt Bild zu einem Selektor mit jQuery, so dass wir das gleiche im DOM zeigen können .

Im HTML- Teil sehen wir, dass wir eine Liste mit den Elementen erstellt haben, die zur Liste der Dinge gehören, und zeigen schließlich an, dass das Ereignis ein Mouseover ist und die Funktion, die ausgeführt werden muss, wenn das Ereignis eintritt. Mal sehen, wie unsere Anwendung aussieht, wenn wir sie in unserem Browser ausführen:

form-knockout-3.jpg

Wenn wir dann den Mauszeiger auf einige der Texte bewegen, wird das entsprechende Bild geladen und wir können die Funktionalität unseres Beispiels sehen:

form-knockout-4.jpg

Da es sich natürlich um eine dynamische Änderung handelt, können wir die Änderung nicht einschätzen, aber wenn wir den Cursor auf das obere Element bewegen, ändert sich das Bild. Damit haben wir dieses Tutorial abgeschlossen, mit dem wir die Arbeit mit Formularen mit Knockout.js vertieft haben und uns Werkzeuge an die Hand geben, um die Erfassung und Validierung der von unseren Benutzern stammenden Daten zu verbessern.

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *