用angular做表单验证

先上图
这里写图片描述
看到红色箭头所示,有注意两点:

  1. 当文本框获得焦点的时候,有一个box-shadow的效果
  2. 同时会有验证

都知道input是单标签(不闭合)的元素,为了实现这个效果,就需要用到div将input包围起来,如下:

 <div ng-class="{focus:myfocus,blur:myblur}">
                <label for="uName">
                    <img src="img/aa.jpg" alt=""/>
                </label>
                <input type="text";
                       id="uName";
                       name="uName";
                       ng-model="person.name"
                       ng-focus="myfocus=true;myblur=false;" ;
                        ng-blur="myfocus=false;myblur=true";
                       required
                       ng-maxlength=14
                       ng-minlength="5"
                       />

                <div class="error" ng-show="uForm.uName.$dirty && uForm.uName.$invalid">
                    <small ng-show="uForm.uName.$error.maxlength">最大长度位14</small>
                    <small ng-show="uForm.uName.$error.minlength">最小长度位5</small>
                    <small ng-show="uForm.uName.$error.required">必须输入</small>
                </div>
            </div>

这样的话,结构就成了

<div>
    <label></label>
    <input type='text'>
    <div class='error'></div>
</div>

为了达到获得焦点使父元素具有focus样式,就需要用到angular的ng-class指令

ng-class="{focus:myfocus,blur:myblur}"

同时myfocus/myblur的真假值在input元素中用ng-focus判断
像这样子

ng-focus="myfocus=true;myblur=false";
ng-blur="myfocus=false;myblur=true";

对于表单验证像下面这样
注意required不是ng-required

required
ng-maxlength=14
ng-minlength="5"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值