javascript - Angular 自定义验证

标签 javascript angularjs

我是 Angular 新手,无法找到 Angular 应用程序自定义验证的完美解决方案。

我们有一个附加到数组的输入字段(列表有 2500 多个选项),现在我们想要验证用户针对数组输入的值,但我们无法做到这一点,这是我们的简单代码

    var value_array = ["a",c","c"];
    app.directive('validValue', function() {
        return {
            restrict: 'A',
            require: '^form',
            link: function(scope,elem,attr,formController) {
                elem.bind('blur', function() {
                 // no idea what to do from here
        }
    });

最佳答案

您可以使用 datalist 元素进行验证,或使用 setCustomValidity 使该元素无效。

在模板中使用数据列表(可能不需要指令):

<input ng-model="model" list="validOptions">
<datalist id="validOptions">
  <option value="red" />
  <option value="green" />
  <option value="blue" />
</datalist>

使用setCustomValidity:

要将元素标记为有效,请将空字符串 '' 传递给函数,否则传递错误消息。

elem.bind('blur', function() {
  for(let validOption of options) {
    if(validOption === value) {
      return elem[0].setCustomValidity('');
    }
  }
  elem[0].setCustomValidity('Invalid value, try again');
});

关于javascript - Angular 自定义验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39107076/

相关文章:

angularjs - Ionic 2 事件,发布和订阅不工作

javascript - 是否可以模拟 qUnit 测试的 window.location 对象?

javascript - 递归 - javascript

javascript - return false 在 then 中不起作用,并且使用 lodash 绑定(bind)函数

javascript - 我如何使用angularjs在ng-repeat中附加表数据值

javascript - 直接链接时 AngularJS 路由不起作用 - 使用 html5 模式和 Firebase 重写

javascript - 如何将自定义按钮添加到 JqGrid 添加/编辑表单?

javascript - 仅变换 Path2D 的样式

model-view-controller - Angular $watch 和从数据库中检索数据的问题

javascript - AngularJS:Restangular - 如何从 URL 中删除查询参数