Heim Web-Frontend js-Tutorial AngularJS-Formularvalidierungsmethoden

AngularJS-Formularvalidierungsmethoden

Oct 19, 2017 am 09:25 AM
angularjs javascript 方法

Anjularjs-Formularvalidierung

Es ist sehr wichtig, in Echtzeit visuelles Feedback basierend auf den Eingaben des Benutzers in das Formular geben zu können. Im Kontext der Mensch-zu-Mensch-Kommunikation ist das Feedback durch die Formularvalidierung ebenso wichtig wie das Einholen korrekter Eingaben.

Die Formularvalidierung liefert nicht nur nützliches Feedback für Benutzer, sondern schützt unsere Webanwendungen auch vor Schäden durch böswillige oder falsche Eingaben. Wir müssen unser Bestes tun, um das Backend im Web-Frontend zu schützen.

AngularJS kann die HTML5-Formularvalidierungsfunktion mit seinen eigenen Validierungsanweisungen kombinieren, was sehr praktisch ist. AngularJS bietet viele Anweisungen zur Formularvalidierung.


<form name="form" novalidate>
    <label name="email">Your email</label>
    <input type="email" name="email" ng-model="email" placeholder="Email Address"/></form>
Nach dem Login kopieren

Um die Formularvalidierung zu verwenden, stellen Sie zunächst sicher, dass das Formular ein Namensattribut wie im obigen Beispiel hat.

Alle Eingabefelder können einer grundlegenden Validierung unterzogen werden, z. B. maximale und minimale Länge usw. Diese Funktionen werden durch neue HTML5-Formularattribute bereitgestellt.

Wenn Sie das Standardvalidierungsverhalten des Browsers für das Formular blockieren möchten, können Sie das Novalidate-Tag zum Formularelement hinzufügen

1. Erforderlich

Um zu überprüfen, ob eine Formulareingabe ausgefüllt wurde, fügen Sie einfach das erforderliche HTML5-Tag zum Eingabefeldelement hinzu:

Hinweis: Das erforderliche Attribut gilt für das folgende < Eingabetypen: Text, Suche, URL, Telefon, E-Mail, Passwort, Datumsauswahl, Nummer, Kontrollkästchen, Radio und Datei


&lt;input type=&quot;text&quot; required /&gt;
Nach dem Login kopieren

2. Mindestlänge ng-minleng="{number}"

Um zu überprüfen, ob die im Formular eingegebene Textlänge größer als ein bestimmter Mindestwert ist, verwenden Sie die AngularJS-Direktive ng-minleng="{ number}" <🎜 im Eingabefeld >


&lt;input type=&quot;text&quot; ng-minlength=&quot;5&quot; /&gt;
Nach dem Login kopieren

 3. Maximale Länge ng-maxlength="{number}"

Überprüfen Sie, ob die Textlänge der Formulareingabe kleiner oder gleich einem bestimmten Maximalwert ist, indem Sie die AngularJS-Direktive ng-maxlength="{number}" im Eingabefeld


< verwenden 🎜>

&lt;input type=&quot;text&quot; ng-maxlength=&quot;20&quot; /&gt;
Nach dem Login kopieren
 4. Mustervergleich ng-pattern="/PATTERN/"

Verwenden Sie ng-pattern="/PATTERN/", um sicherzustellen, dass die Eingabe mit dem angegebenen regulären Ausdruck übereinstimmt :


&lt;input type=&quot;text&quot; ng-pattern=&quot;[a-zA-Z]&quot; /&gt;
Nach dem Login kopieren
 5. E-Mail

Um zu überprüfen, ob es sich bei dem Eingabeinhalt um eine E-Mail handelt, legen Sie einfach den Eingabetyp auf fest Senden Sie eine E-Mail wie folgt:


&lt;input type=&quot;email&quot; name=&quot;email&quot; ng-model=&quot;user.email&quot; /&gt;
Nach dem Login kopieren
 6. Zahlen

Überprüfen Sie, ob der Eingabeinhalt eine Zahl ist, und legen Sie den Eingabetyp fest zur Nummer:


&lt;input type=&quot;number&quot; name=&quot;age&quot; ng-model=&quot;user.age&quot; /&gt;
Nach dem Login kopieren
7. URL

Überprüfen Sie, ob es sich bei dem Eingabeinhalt um eine URL handelt, und stellen Sie den Eingabetyp auf ein URL:


&lt;input type=&quot;url&quot; name=&quot;homepage&quot; ng-model=&quot;user.facebook_url&quot; /&gt;
Nach dem Login kopieren
Steuervariablen im Formular

Auf die Eigenschaften des Formulars kann im $scope-Objekt zugegriffen werden zu denen sie gehören, und wir können auf das $scope-Objekt zugreifen, sodass JavaScript indirekt auf Formulareigenschaften im DOM zugreifen kann. Mithilfe dieser Eigenschaften können wir (wie alles andere in AngularJS) in Echtzeit auf das Formular antworten. Zu diesen Eigenschaften gehören die folgenden. (Beachten Sie, dass auf diese Eigenschaften mit dem folgenden Format zugegriffen werden kann.)

formName.inputFieldName.property


■Unverändertes Formular

Dies ist eine boolesche Eigenschaft, Used um festzustellen, ob der Benutzer das Formular geändert hat. Wenn es nicht geändert wurde, ist der Wert wahr, wenn es geändert wurde, ist der Wert falsch


■ Modifizierte Form
formName.inputFieldName.$pristine
Nach dem Login kopieren

As Solange der Benutzer das Formular geändert hat, gibt der Wert unabhängig davon, ob die Eingabe überprüft wurde, true zurück


■Rechtsform
formName.inputFieldName.$dirty
Nach dem Login kopieren

Dies Das boolesche Attribut wird verwendet, um zu bestimmen, ob der Inhalt des Formulars legitim ist. Wenn der aktuelle Formularinhalt zulässig ist, ist der Wert des folgenden Attributs wahr:


■ Unzulässige Form
formName.inputFieldName.$valid
Nach dem Login kopieren

Dieses boolesche Attribut wird verwendet Bestimmen Sie, ob der Inhalt des Formulars illegal ist. Wenn der aktuelle Formularinhalt illegal ist, ist der Wert des folgenden Attributs wahr:


■ Fehler
formName.inputFieldName.$invalid
Nach dem Login kopieren

Dies ist eine weitere sehr nützliche Funktion von AngularJS Nützliche Eigenschaften: $error-Objekt. Es enthält alle Validierungen für das aktuelle Formular sowie Informationen darüber, ob diese gültig sind oder nicht. Verwenden Sie die folgende Syntax, um auf diese Eigenschaft zuzugreifen:


formName.inputfieldName.$error
Nach dem Login kopieren
$parsers

Wenn der Benutzer mit dem Controller interagiert, und ngModelController Wenn die Methode $setViewValue() aufgerufen wird, werden die Funktionen im Array $parsers nacheinander in Form einer Pipeline aufgerufen. Nachdem der erste $parse aufgerufen wurde, wird das Ausführungsergebnis an den zweiten $parse übergeben usw.

Diese Funktionen können den Eingabewert konvertieren oder die Rechtmäßigkeit des Formulars über $setValidity() festlegen Funktion.

Die Verwendung des $parsers-Arrays ist eine der Möglichkeiten, eine benutzerdefinierte Validierung zu implementieren.

  例如,假设我们想要确保输入值在某两个数值之间,可以在 $parsers 数组中入栈一个新的函数,这个函数会在验证链中被调用。

  每个 $parser 返回的值都会被传入下一个 $parser 中。当不希望数据模型发生更新时返回undefined 。

html


&lt;!DOCTYPE html&gt;&lt;html ng-app=&quot;myApp&quot;&gt;&lt;head&gt;
    &lt;meta charset=&quot;utf-8&quot;&gt;
    &lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=edge&quot;&gt;
    &lt;title&gt;表单测试&lt;/title&gt;
    &lt;link rel=&quot;stylesheet&quot; href=&quot;&quot;&gt;
    &lt;script type=&quot;text/javascript&quot; src=&quot;angular.1.2.13.js&quot;&gt;&lt;/script&gt;&lt;/head&gt;&lt;body&gt;
    &lt;p ng-controller=&quot;TestController&quot;&gt;
        &lt;form name=&quot;testForm&quot;&gt;
            &lt;input type=&quot;number&quot; name=&quot;inputs&quot; ng-test ng-model=&quot;obj.number&quot;&gt;
            &lt;span ng-show=&quot;testForm.inputs.$error.test&quot;&gt;good&lt;/span&gt;
            &lt;span ng-hide=&quot;testForm.inputs.$error.test&quot;&gt;bad&lt;/span&gt;
            &lt;p&gt;{{ testForm.inputs.$valid }}&lt;/p&gt;
            &lt;p&gt;{{ testForm.inputs.$invalid }}&lt;/p&gt;
            &lt;p&gt;{{ obj.number }}&lt;/p&gt;
        &lt;/form&gt;
    &lt;/p&gt;
    &lt;script type=&quot;text/javascript&quot; src=&quot;test5app.js&quot;&gt;&lt;/script&gt;&lt;/body&gt;&lt;/html&gt;
Nach dem Login kopieren

javascript ( test5app.js )


angular.module(&#39;myApp&#39;, []).controller(&#39;TestController&#39;, function($scope) {
    $scope.obj = {
        number: 34
    }
}).directive(&#39;ngTest&#39;, function() {    
return {
        require: &#39;?ngModel&#39;,
        restrict: &#39;AE&#39;,
        link: function($scope, iElm, iAttrs, ngModel) {            
        if (!ngModel) return;
            ngModel.$parsers.push(function(viewValue) {                
            var num = parseInt(viewValue);                
            if (num &gt;= 0 &amp;&amp; num &lt; 99) {
                    ngModel.$setValidity(&#39;test&#39;, true);                    
                    return viewValue
                } else {
                    ngModel.$setValidity(&#39;test&#39;, false);                    
                    return undefined
                }
            })
        }
    }
});
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonAngularJS-Formularvalidierungsmethoden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So schreiben Sie einen Roman in der Tomato Free Novel-App. Teilen Sie das Tutorial zum Schreiben eines Romans in der Tomato Novel-App So schreiben Sie einen Roman in der Tomato Free Novel-App. Teilen Sie das Tutorial zum Schreiben eines Romans in der Tomato Novel-App Mar 28, 2024 pm 12:50 PM

So schreiben Sie einen Roman in der Tomato Free Novel-App. Teilen Sie das Tutorial zum Schreiben eines Romans in der Tomato Novel-App

Wie lösche ich WeChat-Freunde? So löschen Sie WeChat-Freunde Wie lösche ich WeChat-Freunde? So löschen Sie WeChat-Freunde Mar 04, 2024 am 11:10 AM

Wie lösche ich WeChat-Freunde? So löschen Sie WeChat-Freunde

Wie rufe ich das BIOS auf dem Colorful-Motherboard auf? Bringen Sie Ihnen zwei Methoden bei Wie rufe ich das BIOS auf dem Colorful-Motherboard auf? Bringen Sie Ihnen zwei Methoden bei Mar 13, 2024 pm 06:01 PM

Wie rufe ich das BIOS auf dem Colorful-Motherboard auf? Bringen Sie Ihnen zwei Methoden bei

So stellen Sie gelöschte Kontakte auf WeChat wieder her (ein einfaches Tutorial erklärt Ihnen, wie Sie gelöschte Kontakte wiederherstellen) So stellen Sie gelöschte Kontakte auf WeChat wieder her (ein einfaches Tutorial erklärt Ihnen, wie Sie gelöschte Kontakte wiederherstellen) May 01, 2024 pm 12:01 PM

So stellen Sie gelöschte Kontakte auf WeChat wieder her (ein einfaches Tutorial erklärt Ihnen, wie Sie gelöschte Kontakte wiederherstellen)

Zusammenfassung der Methoden zum Erhalten von Administratorrechten in Win11 Zusammenfassung der Methoden zum Erhalten von Administratorrechten in Win11 Mar 09, 2024 am 08:45 AM

Zusammenfassung der Methoden zum Erhalten von Administratorrechten in Win11

Schneller Meister: So eröffnen Sie zwei WeChat-Konten auf Huawei-Handys! Schneller Meister: So eröffnen Sie zwei WeChat-Konten auf Huawei-Handys! Mar 23, 2024 am 10:42 AM

Schneller Meister: So eröffnen Sie zwei WeChat-Konten auf Huawei-Handys!

Das Geheimnis des Ausbrütens mobiler Dracheneier wird gelüftet (Schritt für Schritt erfahren Sie, wie Sie mobile Dracheneier erfolgreich ausbrüten) Das Geheimnis des Ausbrütens mobiler Dracheneier wird gelüftet (Schritt für Schritt erfahren Sie, wie Sie mobile Dracheneier erfolgreich ausbrüten) May 04, 2024 pm 06:01 PM

Das Geheimnis des Ausbrütens mobiler Dracheneier wird gelüftet (Schritt für Schritt erfahren Sie, wie Sie mobile Dracheneier erfolgreich ausbrüten)

Detaillierte Erläuterung der Oracle-Versionsabfragemethode Detaillierte Erläuterung der Oracle-Versionsabfragemethode Mar 07, 2024 pm 09:21 PM

Detaillierte Erläuterung der Oracle-Versionsabfragemethode

See all articles