Angular验证输入类型=“email”为type =“text”

时间:2013-07-30 17:49:07

标签: javascript validation angularjs

我的Angular应用程序有一个登录表单,其中包含电子邮件/用户名输入字段:

<input type="email" required/>

输入是type =&#34; email&#34;所以correct keyboard is displayed in iOS 但是,验证应该是类型=&#34; text&#34;输入以允许用户名。

基本上我需要覆盖Angular来验证type =&#34; email&#34; as type =&#34; text&#34;
这是一个basic Plunker开始。

注意:我尝试过使用ng-pattern来验证正则表达式,但它似乎只适用于type =&#34; text&#34;

1 个答案:

答案 0 :(得分:5)

我认为不可能改变输入类型='电子邮件'的处理方式而不改变它的来源,但也许你可以尝试:

<input type="text" required late-email />
angular.module('yourApp').directive('lateEmail', function () {
    return {
        priority: -1,
        link: function(scope, elem, attrs) {
            elem.attr('type', 'email');
        }
    };
});

这里重要的是优先级,因为angularjs输入指令需要先运行(链接)才会使用'text'作为输入类型,然后lateEmail会将输入类型更改为电子邮件。