zoukankan      html  css  js  c++  java
  • Angularjs总结(一)表单验证

    常用的表单验证
    1.必须字段
    html5特性 增加required

    <input type="text" required /> 

    2.最小长度和最大长度

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

    3.模式匹配——正则表达式

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

    4.邮件模式 将type设置为email

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

    5.数字 将type设置为number

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

    6.url 将type设置为url

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

    不常用(以下属性在form表单中)

    1.屏蔽对表单的验证
    novalidate
    2.未修改过的表单 bool属性 true表示已修改过
    formName.inputFieldName.$pristine;
    3.已修改过的表单 bool属性
    formName.inputFieldName.$dirty
    4.通过表单验证 bool属性
    formName.inputFieldName.$valid
    5.未通过表单验证 bool属性
    formName.inputFieldName.$invalid
    例:

     1 <form role="form" name="myForm" ng-submit="submitForm(myForm.$valid)" class="form-horizontal" novalidate>
     2 <div class="form-group has-feedback">
     3 <div class="col-md-4">
     4 <label for="name">1.必填项</label>
     5 </div>
     6 <div class="col-md-8">
     7 <input class="form-control" id="name" name="name" type="text" required ng-model='user.name' />
     8 <span class="glyphicon glyphicon-ok form-control-feedback"
     9 ng-show="myForm.name.$dirty && myForm.name.$valid"></span>
    10 </div>
    11 </div>
    12 </form>

    $pristine 【没修改】:{{myForm.name.$pristine }}&nbsp;&nbsp;
    $dirty【修改过】:{{myForm.name.$dirty}}&nbsp;&nbsp;
    $invalid【验证失败】:{{myForm.name.$invalid}}&nbsp;&nbsp;
    $invalid【验证成功】:{{myForm.name.$valid}}&nbsp;&nbsp;
    required:{{myForm.name.$error.required}}&nbsp;&nbsp;

    ngMessages对表单进行优化
    1.首先我们需引入angular.module('myApp', ['ngMessages']);
    ng是通过$error来监视模型变化的,$error中会给出详细的错误信息
    例子:

     1 <form role="form" name="myForm" class="form-horizontal" novalidate>
     2     <div class="form-group">
     3         <div class="col-md-2">
     4             用户名
     5         </div>
     6         <div class="col-md-10">
     7             <input type="text" placeholder="ng-Messages测试" name="name" ng-model="username.name"
     8                    ng-minlength=3 ng-maxlength=20 required />
     9             <hr />
    10             $error:{{myForm.name.$error}}
    11             <hr />
    12             <div ng-messages="myForm.name.$error">
    13                 <div ng-message="required">必填项</div>
    14                 <div ng-message="minlength">字符太短小于3</div>
    15                 <div ng-message="maxlength">字符太长大于20</div>
    16             </div>
    17         </div>
    18     </div>
    19 </form>

    2.错误提示复用
    将其作为模板,指定的路径由ng自动添加,这里需要使用到ng-messages-include命令;
    首先将错误放到一静态页面error.html

    1 <div ng-message="required">必填项</div>
    2 <div ng-message="email">邮件格式不对</div>
    3 <div ng-message="minlength">字符太短小于3</div>
    4 <div ng-message="maxlength">字符太长大于20</div>
    5 <!--在所用到的html页面中用ng-messages-include引入相应的静态页面-->
    6 <div ng-messages="myForm.name.$error" ng-messages-multiple ng-messages-include="@Url.Content('~/Content/template/error.html)"></div>

     

  • 相关阅读:
    Webbrowser 取消下载提示框
    The service ‘xxx’ configured for WCF is not registered with the Autofac container
    Code First 中的 TPH TPT TPC
    SQL Server 之 解锁
    导入 github 步骤
    初试 pyhton 简易采集
    js 一些小技巧
    linux 学习笔记
    lnmp 环境搭建后,pathinfo 模式支持的配制。
    windows 快捷键相关命令
  • 原文地址:https://www.cnblogs.com/bobo-show/p/5632742.html
Copyright © 2011-2022 走看看