angular表单验证

表单验证很简单,要三点需要做的:

  1. 控制表单是否能提交
  2. 显示验证提示信息
  3. 自定义验证规则
第一点:控制表单是否可以提交
可以使用formName.$valid(有效为true)或formName.$invalid(无效为true)来控制提交按钮,formName为表单名称
例如
                    <form ng-submit="submit()" name="dataForm" novalidate>
                    <label class="item item-input">
                        <span class="input-label">产品编号</span>
                        <span class="input-label" ng-show="dataForm.barcode.$error.required">此项必填</span>
                        <span class="input-label" ng-show="dataForm.barcode.$error.minlength">长度不够</span>
                        <input type="text" name="barcode" ng-model="product.barcode" required ng-minlength="3">
                    </label>
                    <label class="item item-input">
                        <span class="input-label">产品名称</span>
                        <input type="text" ng-model="product.productName">
                    </label>
                    <button ng-disabled="!dataForm.$valid" class="button button-block button-positive" type="submit">
                        提交
                    </button>
                    </form>
第二点:显示验证提示信息
这个也很简单,只需给input元素加上验证规则,然后通过formName.inputName.patternName(表单名称.文本框名称.验证规则)就可以得出是否验证通过,再通过ng-show就可以控制提示信息的显示和隐藏,有多少提示规则就写多少,angular会根据你的验证规则的顺序依次判断和显示。
第三点:自定义验证规则
var INTEGER_REGEXP = /^\-?\d*$/;
app.directive('integer', function() {
  return {
    require: 'ngModel',
    link: function(scope, elm, attrs, ctrl) {
      ctrl.$parsers.unshift(function(viewValue) {
        if (INTEGER_REGEXP.test(viewValue)) {
          // 如果是验证通过的,就返回输入的值给模型
          ctrl.$setValidity('integer', true);
          return viewValue;
        } else {
          // 如果验证不通过,就返回undefined,不返回值给模型
          ctrl.$setValidity('integer', false);
          return undefined;
        }
      });
    }
  };
});
使用以上代码就行了,这个不需要解释把。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值