Anjularjs Form Validation
It is very important to be able to give real-time visual feedback based on what the user enters in the form. In the context of human-to-human communication, the feedback given by form validation is as important as obtaining correct input.
Form validation can not only provide useful feedback to users, but also protect our web applications from being damaged by malicious or incorrect input. We have to do our best to protect the backend on the web frontend.
AngularJS can combine the HTML5 form validation function with its own validation instructions, and it is very convenient. AngularJS provides many form validation instructions.
<form name="form" novalidate> <label name="email">Your email</label> <input type="email" name="email" ng-model="email" placeholder="Email Address"/></form>
To use form validation, first make sure the form has a name attribute like the example above.
All input fields can be subject to basic validation, such as maximum and minimum length, etc. These capabilities are provided by new HTML5 form attributes.
If you want to block the browser’s default validation behavior for the form, you can add the novalidate tag to the form element
1. Required
To verify whether a form input has been filled in, just add the HTML5 tag required on the input field element:
Note: The required attribute applies to the following <input> types :text, search, url, telephone, email, password, date pickers, number, checkbox, radio and file
<input>
2. Minimum length ng -minleng="{number}"
To verify whether the text length entered in the form is greater than a certain minimum value, use the AngularJS directive ng-minleng="{number}"
# on the input field
##
<input type="text" ng-minlength="5" />
3. Maximum length ng-maxlength="{number}"
Verify whether the text length entered in the form is less than or equal to a certain maximum length value, use the AngularJS directive ng-maxlength="{number}"<input type="text" ng-maxlength="20" />
on the input field 4. Pattern matching ng-pattern="/PATTERN/"
Use ng-pattern="/PATTERN/" to ensure that the input matches the specified regular expression:<input type="text" ng-pattern="[a-zA-Z]" />
5 . Email
To verify whether the input content is an email, just set the input type to email as follows:<input type="email" name="email" ng-model="user.email" />
6. Numbers
Verify whether the input content is a number and set the input type to number:<input type="number" name="age" ng-model="user.age" />
7 . URL
Verify whether the input content is a URL, set the input type to url:<input type="url" name="homepage" ng-model="user.facebook_url" />
Control variables in the form
The properties of the form can be accessed in the $scope object to which they belong, and we can access the $scope object, so JavaScript can indirectly access the form properties in the DOM. With the help of these properties, we can make real-time (like everything else in AngularJS) responses to the form. These properties include the following. (Note that these properties can be accessed using the format below.) formName.inputFieldName.propertyformName.inputFieldName.$pristine■Modified form As long as the user has modified the form, regardless of whether the input is After verification, the value will return true
formName.inputFieldName.$dirty■Legal form This Boolean attribute is used to determine whether the content of the form is legal. If the current form content is legal, the value of the following attribute is true:
formName.inputFieldName.$valid■ Illegal form This Boolean attribute is used to determine the form Whether the content is illegal. If the current form content is illegal, the value of the following attribute is true:
formName.inputFieldName.$invalid■ Error This is another very useful feature provided by AngularJS Properties: $error object. It contains all validations for the current form, as well as information on whether they are valid or not. Use the following syntax to access this property:
formName.inputfieldName.$error
$parsers
When the user interacts with the controller, and the ngModelController When the $setViewValue() method is called, the functions in the $parsers array will be called one by one in a pipeline. After the first $parse is called, the execution result will be passed to the second $parse, and so on These functions can convert the input value, or set the validity of the form through the $setValidity() function . Using the $parsers array is one of the ways to implement custom validation.例如,假设我们想要确保输入值在某两个数值之间,可以在 $parsers 数组中入栈一个新的函数,这个函数会在验证链中被调用。
每个 $parser 返回的值都会被传入下一个 $parser 中。当不希望数据模型发生更新时返回undefined 。
html
<!DOCTYPE html><html ng-app="myApp"><head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>表单测试</title> <link rel="stylesheet" href=""> <script type="text/javascript" src="angular.1.2.13.js"></script></head><body> <p ng-controller="TestController"> <form name="testForm"> <input type="number" name="inputs" ng-test ng-model="obj.number"> <span ng-show="testForm.inputs.$error.test">good</span> <span ng-hide="testForm.inputs.$error.test">bad</span> <p>{{ testForm.inputs.$valid }}</p> <p>{{ testForm.inputs.$invalid }}</p> <p>{{ obj.number }}</p> </form> </p> <script type="text/javascript" src="test5app.js"></script></body></html>
javascript ( test5app.js )
angular.module('myApp', []).controller('TestController', function($scope) { $scope.obj = { number: 34 } }).directive('ngTest', function() { return { require: '?ngModel', restrict: 'AE', link: function($scope, iElm, iAttrs, ngModel) { if (!ngModel) return; ngModel.$parsers.push(function(viewValue) { var num = parseInt(viewValue); if (num >= 0 && num < 99) { ngModel.$setValidity('test', true); return viewValue } else { ngModel.$setValidity('test', false); return undefined } }) } } });
The above is the detailed content of AngularJs form validation methods. For more information, please follow other related articles on the PHP Chinese website!

JavaScript can be used for front-end and back-end development. The front-end enhances the user experience through DOM operations, and the back-end handles server tasks through Node.js. 1. Front-end example: Change the content of the web page text. 2. Backend example: Create a Node.js server.

Choosing Python or JavaScript should be based on career development, learning curve and ecosystem: 1) Career development: Python is suitable for data science and back-end development, while JavaScript is suitable for front-end and full-stack development. 2) Learning curve: Python syntax is concise and suitable for beginners; JavaScript syntax is flexible. 3) Ecosystem: Python has rich scientific computing libraries, and JavaScript has a powerful front-end framework.

The power of the JavaScript framework lies in simplifying development, improving user experience and application performance. When choosing a framework, consider: 1. Project size and complexity, 2. Team experience, 3. Ecosystem and community support.

Introduction I know you may find it strange, what exactly does JavaScript, C and browser have to do? They seem to be unrelated, but in fact, they play a very important role in modern web development. Today we will discuss the close connection between these three. Through this article, you will learn how JavaScript runs in the browser, the role of C in the browser engine, and how they work together to drive rendering and interaction of web pages. We all know the relationship between JavaScript and browser. JavaScript is the core language of front-end development. It runs directly in the browser, making web pages vivid and interesting. Have you ever wondered why JavaScr

Node.js excels at efficient I/O, largely thanks to streams. Streams process data incrementally, avoiding memory overload—ideal for large files, network tasks, and real-time applications. Combining streams with TypeScript's type safety creates a powe

The differences in performance and efficiency between Python and JavaScript are mainly reflected in: 1) As an interpreted language, Python runs slowly but has high development efficiency and is suitable for rapid prototype development; 2) JavaScript is limited to single thread in the browser, but multi-threading and asynchronous I/O can be used to improve performance in Node.js, and both have advantages in actual projects.

JavaScript originated in 1995 and was created by Brandon Ike, and realized the language into C. 1.C language provides high performance and system-level programming capabilities for JavaScript. 2. JavaScript's memory management and performance optimization rely on C language. 3. The cross-platform feature of C language helps JavaScript run efficiently on different operating systems.

JavaScript runs in browsers and Node.js environments and relies on the JavaScript engine to parse and execute code. 1) Generate abstract syntax tree (AST) in the parsing stage; 2) convert AST into bytecode or machine code in the compilation stage; 3) execute the compiled code in the execution stage.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

SublimeText3 Linux new version
SublimeText3 Linux latest version

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 English version
Recommended: Win version, supports code prompts!

Notepad++7.3.1
Easy-to-use and free code editor
