【问题标题】:angularjs ng-pattern for input[email] doesn't work as expectedinput[email] 的 angularjs ng-pattern 无法按预期工作
【发布时间】:2015-12-29 12:51:56
【问题描述】:

我想允许任何事情,包括无效的电子邮件(没有@、空等)

https://jsfiddle.net/pb45k5xa/2/

我正在使用:

ng-pattern="/.*?/"

但除非您在输入中不输入*@*(如a@b),否则它不起作用。

我怎样才能避免这种情况?

【问题讨论】:

    标签: javascript angularjs design-patterns input


    【解决方案1】:
    <input type="email" ng-pattern="/.*?/" ng-model="email" placeholder="Enter an email here">
    

    此处type="email" 自行执行验证。如果您想允许用户输入任何内容,只需使用不带type="email"ng-pattern="/.*?/" 的常规输入即可。

    【讨论】:

    • 我无法删除 type="email" 因为它对移动设备很有用(电子邮件输入使用另一个键盘(包括主视图中的“@”字符等)
    • 我明白了。您应该编辑您的问题以添加此说明。无论如何,我认为您发布的答案是正确的方法。
    【解决方案2】:
    module.directive('ngRemoveEmailValidation', function(){
            return {
                require : 'ngModel',
                link : function(scope, element, attrs, ngModel) {
                    ngModel.$validators["email"] = function () {
                        return true;
                    };
                }
            }
        });
    

    我正在使用这个指令来“绕过”验证器

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-27
      • 1970-01-01
      • 1970-01-01
      • 2013-05-14
      • 1970-01-01
      • 2017-06-05
      相关资源
      最近更新 更多