5

私の Angular アプリには、電子メール/ユーザー名の入力フィールドを持つログイン フォームがあります。

<input type="email" required/>

入力は type="email" なので、正しいキーボードが iOS に表示されます
ただし、検証は、ユーザー名を許可するための type="text" 入力の検証である必要があります。

基本的に、type="email" を type="text" として検証するためにAngularをオーバーライドする必要があり
ます。

:正規表現で検証するために ng-pattern を使用しようとしましたが、 type="text" でのみ機能するようです

4

1 に答える 1

5

ソースを変更せずに input type='email' が angular で処理される方法を変更することはできないと思いますが、代わりに次のことを試すことができます。

<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 の入力ディレクティブは最初に実行 (リンク) する必要があるため、入力タイプとして「テキスト」を使用します。その後、lateEmail は入力タイプを電子メールに変更します。

于 2013-07-30T19:35:42.663 に答える