在单个输入(URL)上禁用角度形式验证

理想男生

我正在建立一个带有URL字段的Angular表单,该URL字段可以使用前缀(http://)或不使用前缀进行格式化。使用Angular的默认url验证需要http://,因此我插入了以下正则表达式,该正则表达式接受带或不带前缀:

<input type="text" id="siteAddress" name="siteAddress" ng-model="user.url" ng-pattern="/^(https?:\/\/)?([\dA-Za-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/" required>

这很好用,但是当我设置type =“ url”时,Angular的验证将覆盖我的自定义ng-pattern。该表格仅适用于移动用户,因此type =“ url”很重要,以便他们接收正确的键盘,因此其移动操作系统不会尝试自动更正其输入。

是否可以在不使用Angular的默认验证的情况下使用type =“ url”,还是可以修改Angular的默认验证,使其不接受url前缀?

谢谢!

格拉

似乎没有官方的API可以执行此操作,但是您始终可以覆盖默认指令或使用具有更高优先级的指令来更改标准行为。

例如,angular的input指令从$attributes对象获取类型,因此您可以删除此属性。

directive('ignoreType', function() {
    return {
        priority: 500,
        compile: function(el, attrs) { 
            attrs.$set('type', 
                null,                //to delete type from attributes object
                false                //to preserve type attribute in DOM
            );
        }
    }
});

这是jsfiddle

当然,此解决方案也可能破坏其他与type属性配合使用的指令的行为,因此请谨慎使用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

禁用所有输入形式的角度

来自分类Dev

禁用所有输入形式的角度

来自分类Dev

角度的,验证单个输入(不在内部表单中)

来自分类Dev

以角度形式设置自定义输入验证

来自分类Dev

以角度形式设置自定义输入验证

来自分类Dev

验证嵌套形式的角度

来自分类Dev

验证嵌套形式的角度

来自分类Dev

全局角度形式验证

来自分类Dev

禁用单个元素的XSD验证?

来自分类Dev

禁用角度表单验证ng禁用

来自分类Dev

禁用orbeon形式的即时验证

来自分类Dev

角度2的输入禁用开关

来自分类Dev

最小角度形式验证

来自分类Dev

以角度形式进行组验证

来自分类Dev

jQuery禁用输入形式的字母

来自分类Dev

弹簧形式输入不能禁用

来自分类Dev

我们可以使用不带形式的角度输入验证吗

来自分类Dev

清除输入图标无法正常工作的形式具有角度js的验证

来自分类Dev

AngularJS:单个单词输入验证

来自分类Dev

禁用表单上的输入

来自分类Dev

角度验证输入类型=“数字”

来自分类Dev

角度反应形式和按钮禁用/启用

来自分类Dev

重复部分上多个字段的角度形式自定义验证

来自分类Dev

URL输入验证NestJs

来自分类Dev

URL输入验证NestJs

来自分类Dev

验证用户输入的URL

来自分类Dev

带禁用字段的角度表单验证

来自分类Dev

为禁用的窗体控件角度关闭验证

来自分类Dev

禁用更新形式的验证-CakePHP