zoukankan      html  css  js  c++  java
  • angularjs中的表单验证

    angular对html原生的form做了封装,增加了很多验证功能

    1.代码结构

    <form name="signup_form" novalidate ng-submit="signupForm()">
            <div>
                <label>用户名</label>
                <input type="text" placeholder="Name" name="name" ng-model="signup.name" ng-minlength=3 ng-maxlength=20 required />
                <div class="error" ng-show="signup_form.name.$dirty && signup_form.name.$invalid">
                    <small ng-show="signup_form.name.$error.required">姓名必填</small>
                    <small ng-show="signup_form.name.$error.minlength">姓名最少三个字符</small>
                    <small ng-show="signup_form.name.$error.maxlength">姓名最多20个字符</small>
                </div>
            </div>
    
            <div>
                <label>密码</label>
                <input type="text" placeholder="Name" name="name" ng-model="signup.name" ng-minlength=3 ng-maxlength=20 required />
                <div class="error" ng-show="signup_form.name.$dirty && signup_form.name.$invalid">
                    <small ng-show="signup_form.name.$error.required">密码必填</small>
                    <small ng-show="signup_form.name.$error.minlength">密码最少三个字符</small>
                    <small ng-show="signup_form.name.$error.maxlength">密码最多20个字符</small>
                </div>
            </div>
            <button type="submit" ng-disabled="signup_form.$invalid" class="button radius">提交</button>
        </form>

    2.如果要使用angular的表单验证,首先要确保表单必须要有一个name的属性所有的输入字段都可以进行基本验证,比如最大,最小长度等。这些功能都由H5的表单属性提供,如果想要屏蔽浏览器对于表单默认的验证行为,可以在表单上添加novaildate的标记。

    3.h5的验证

        必填项:验证表单输入是否已经添加 之前在dom元素上加上required标记即可

    <input type="text" required/>

        最大/小长度:验证表单输入的文本是否小/大于某个最小值,可以在输入的字段上使用指令 ng-maxlength="{number}"/ng-minlength="{number}"

    <input type="text" ng-minlength="5" ng-maxlength="15"/>

       电子邮件:验证输入的文本是否是电子邮箱可以使用 type=email来实现

    <input type="email" name="email" ng-model="user.email" />

        是否数字:验证输入的文本是否是为数字可以使用 type=number来实现

    <input type="number" name="age" ng-model="user.age" />

        URL:验证输入的文本是否是为url可以使用 type=url来实现

    <input type="url" name="homepage" ng-model="user.homepage" />

    4.angular内置的验证指令

      匹配模式:使用ng-pattern="/PATTERN/"来确保输入能匹配指定的正则表达式

    <input type="text" ng-pattern="[a-zA-Z]"/>

    5.表单的属性

          表单的属性可以在所在作用域的$scope对象中访问到,而我们又可以访问$scope对象因为JavaScript可以间接地访问dom中的表单属性借助这些属性,我们可以对表单做出实时的响应(双向绑定)这些属性

    1:未修改的表单
    这是一个布尔类型的属性,用来判断用户是否修改了表单,如果未修改,值为true否则为false
    formName.inputfieldName.$pristine
    2:修改过的表单
    只要用户修改过表单无论输入是否验证通过都返回true
    formName.inputfieldName.$dirty
    3:合法的表单
    这个布尔属性用来判断表单的内容是否不合法,如果当前的表单内容是合法的。该属性就返回为true
    formName.inputfieldName.$valid
    4:不合法的表单
    这个布尔属性用来判断表单的内容是否不合法,如果当前的表单内容是不合法的,该属性就返回为true
    formName.inputfieldName.$invalid
    5:错误
    这是angular提交的另一个非常有用的属性:$error对象,她包含当前表单所有的验证内容。以及它们是否合法的信息,可以这样来访问formName.inputfieldName.$error,如果验证失败这个属性值为true,如果值为false说明通过了验证。
  • 相关阅读:
    脚本编辑器的写法
    图集优化
    数组与链表的区别
    第四课 vi编辑器使用
    第三课下 Linux termina命令行常用快捷键
    第三课上 Linux命令入门
    01.Volatile相关知识
    第二课 Ubuntu环境搭建和图形界面操作
    第一课 不要用老方法学习单片机和ARM
    第八讲 IPC之信号量Semaphore
  • 原文地址:https://www.cnblogs.com/iagw/p/6876108.html
Copyright © 2011-2022 走看看