• 【AngularJs】---表单验证


    1. 必填项

    验证某个表单输入是否已填写,只要在输入字段元素上添加HTML5标记required即可:

    <input type="text" required /> 


    2. 最小长度
    验证表单输入的文本长度是否大于某个最小值,在输入字段上使用AngularJS指令

    ng-minleng= "{number}":

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

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

    <input type="text" ng-maxlength="20" />

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

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

    5. 电子邮件
    验证输入内容是否是电子邮件,只要像下面这样将input的类型设置为email即可:

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

    6. 数字
    验证输入内容是否是数字,将input的类型设置为number:

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

    7. URL
    验证输入内容是否是URL,将input的类型设置为 url:

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

    8. 在表单中控制变量
    表单的属性可以在其所属的$scope对象中访问到,而我们又可以访问$scope对象,因此
    JavaScript可以间接地访问DOM中的表单属性。借助这些属性,我们可以对表单做出实时(和
    AngularJS中其他东西一样)响应。这些属性包括下面这些。
    (注意,可以使用下面的格式访问这些属性。)
    --formName.inputFieldName.property

    • 未修改的表单

    这是一个布尔属性,用来判断用户是否修改了表单。如果未修改,值为true,如果修改过值
    为false:
    formName.inputFieldName.$pristine

    • 修改过的表单

    只要用户修改过表单,无论输入是否通过验证,该值都返回true:
    formName.inputFieldName.$dirty

    • 合法的表单

    这个布尔型的属性用来判断表单的内容是否合法。如果当前表单内容是合法的,下面属性的
    值就是true:
    formName.inputFieldName.$valid

    • 不合法的表单

    这个布尔属性用来判断表单的内容是否不合法。如果当前表单内容是不合法的,下面属性的
    值为true:
    formName.inputFieldName.$invalid

    •  错误

    这是AngularJS提供的另外一个非常有用的属性:$error对象。它包含当前表单的所有验证
    内容,以及它们是否合法的信息。用下面的语法访问这个属性:
    formName.inputfieldName.$error

    如果验证失败,这个属性的值为true;如果值为false,说明输入字段的值通过了验证

     eg:

    <form name="myForm">
      <input name="personEmail" required type="email" ng-model="person.email"/>
      <span ng-show="!myForm.personEmail.$valid">有错</span>
      <span ng-show="myForm.personEmail.$error.required">必填</span>
      <span ng-show="myform.personEmail.$error.email">email 地址不对</span>
    </form>

    9. 一些有用的CSS样式
    AngularJS处理表单时,会根据表单当前的状态添加一些CSS类(例如当前是合法的、未发生
    变化的,等等),这些CSS类的命名和前面介绍的属性很相似。
    它们包括:
      .ng-pristine {}
      .ng-dirty {}
      .ng-valid {}
      .ng-invalid {}
    它们对应着表单输入字段的特定状态。
    当某个字段中的输入非法时,.ng-invlid类会被添加到这个字段上。当前例子中的站点将
    对应的CSS样式设置为:
    input.ng-invalid {
      border: 1px solid red;
    }
    input.ng-valid {
      border: 1px solid green;
    }

      

    【DEMO】

    <form name="lg_form" ng-submit="login()">
                <ion-content class="padding lg-padding ">
                    <div class="list">
                        <div class="list list-inset">
                            <label class="item item-input">
                                <input type="text" placeholder="username" ng-model="user.username" ng-maxlength="8"
                                       required/>
                            </label>
                            <label class="item item-input">
                                <input type="password" placeholder="password" ng-model="user.password" ng-maxlength="8"
                                       required/>
                            </label>
                        </div>
                    </div>
                    <div class="padding">
                        <button ng-disabled="lg_form.$invalid"
                                class="button button-block button-large button-clear button-positive" type="submit">
                            立即登录
                        </button>
                    </div>
                </ion-content>
        </form>

     提交的方法, 通过ng-submit 绑定到了controller里的login函数上。

  • 相关阅读:
    使用react hook做一个小型完整项目(包括二级路由,动态路由,redux,tab切换,列表跳详情,登录, 守卫)
    项目实战【vue,react,微信小程序】(1705E)
    Vue(1706E)
    加入购物车动画(css)
    React从入门到精通(1704B)
    React(1702H)文章管理-cms系统
    React(1702H)文件上传和分页查找
    React (1702H) 点击复制、滚动条、图形验证码、ridis、密码rsa加密、token、发邮件、文件上传、sql语句
    位图算法
    def跨域+jwt
  • 原文地址:https://www.cnblogs.com/itguliang/p/4380621.html
Copyright © 2020-2023  润新知