首页 > 解决方案 > Md-chips 电子邮件验证

问题描述

Md-chips 电子邮件验证

如何为 md-chips 创建电子邮件验证?我下面的表达式不起作用,因为每当我键入内容时都会调用 ng-keypress 指令。

建议?

 <div class="row">
   <div class="col-md-12" ng-cloak="">
     <md-context class="md-padding">
       <md-chips md-separator-keys="ctrl.customKeys" ng-keypress="ctrl.validateEmail()" ng-model="ctrl.ConfiguracaoRegra.Emails" md-max-chips="20" placeholder="Inserir um email..." ng-required="true" type="email"></md-chips>
       </md-context>
   </div>
 </div>

   vm.validateEmail = function (keyEvent) {
    var emailValue = angular.element(".md-input").val();
    var reg = /^[_a-z0-9]+(\.[_a-z0-9]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/;
    if (reg.test(emailValue)) {
        vm.isEmailValid = true;
    } else {
        vm.isEmailValid = false;
    }
};

标签: javascripthtmlangularjs

解决方案


您应该使用ng-change指令而不是ng-keypress,或者将两者结合使用md-on-addand md-on-remove(参见https://github.com/angular/material/issues/3580#issuecomment-347052946


推荐阅读