5

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

<input type="email" required/>

输入是 type="email" ,因此在 iOS 中会显示正确的键盘
但是,验证应该是 type="text" 输入以允许用户名。

基本上我需要重写 Angular 来验证 type="email" 为 type="text"
这是一个基本的 Plunker入门。

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

4

1 回答 1

5

我认为不可能在不更改其来源的情况下更改 input type='email' 的角度处理方式,但也许您可以尝试:

<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 会将输入类型更改为电子邮件。

于 2013-07-30T19:35:42.663 回答