[英]Md-chips email validation
Md-chips email validation MD-chips电子邮件验证
How to create an email validation for md-chips? 如何为md-chips创建电子邮件验证? My expression below is not working, since, the ng-keypress directive is called whenever I type something.
我在下面的表达式不起作用,因为每当我键入内容时都会调用ng-keypress指令。
Suggestions? 有什么建议吗?
<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;
}
};
您应该使用ng-change
指令代替ng-keypress
keypress,或者将md-on-add
和md-on-remove
(请参阅https://github.com/angular/material/issues/3580#issuecomment-347052946 )
My solution was: create a javascript function where I evaluate whether the ENTER was entered and use a regular expression ('/^[_a-z0-9]+(.[_a-z0-9]+)*@[a-z0 (9)] + (. [A-z0-9 -] +) * (. [Az] {2,4}) $ / '), validating by the test () method. 我的解决方案是:创建一个javascript函数,在其中评估是否输入了ENTER并使用正则表达式('/^[_a-z0-9]+(.[_a-z0-9]+)*@[a-z0 (9)] +(。[A-z0-9-] +)*(。[Az] {2,4})$ /'),通过test()方法进行验证。
function validateEmail(x) { if (event.which === 13) { var emailValue = x; var reg = /^[_a-z0-9]+(\\.[_a-z0-9]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*(\\.[az]{2,4})$/; if (!reg.test(emailValue)) { toastr.error("Digite um email válido!"); vm.ConfiguracaoRegra.Emails.pop(); } }; };
<md-chips md-on-add="ctrl.validateEmail($chip)" ng-model="ctrl.ConfiguracaoRegra.Emails" md-max-chips="20" placeholder="Inserir um email..." type="email" required></md-chips>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.