javascript - Angular 验证 - 按页面顺序输出无效字段

标签 javascript angularjs validation

我正在尝试以通用方式输出无效的字段名称。下面通过循环遍历表单中的所有字段并仅附加到带有键名的字符串来实现这一点。当您单击提交按钮时它会运行:

for (var key in form) {
    if (key.indexOf("$") !== 0) {
        if (form[key].$invalid) {
            str += '- ' + key + '<br />';
        }
    }
}

我唯一的问题是键出现的顺序与字段在页面上出现的顺序不匹配。我假设它与字段本身的创建方式有关,因为动态生成的字段似乎出现在普通字段之前。我很想维持秩序,但想不出好的办法。

是否希望有人提出建议?

最佳答案

您可以通过 DOM 简单地迭代您的控件:

// Assuming $element is your <form>
var invalidFields = [];
$element.find('.ng-invalid').each(function() {
    invalidFields.push(this.name);
});

这种方法只是利用了 NgModelController 的事实将在所有无效控件上设置 ng-invalid CSS 类。使用 Angular 并不意味着您不能使用 DOM。

关于javascript - Angular 验证 - 按页面顺序输出无效字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25439051/

相关文章:

javascript - 如何在 Plotly 中将图例放在顶部而不是底部?

javascript - 单击链接时,函数值应存储在文本框中

javascript - ng-include 删除模板后第二次包含模板失败

angularjs - AngularJS 中的动态下拉选择不起作用

javascript - innerHTML 仅适用于某些功能

javascript - Class.method 不是使用 ES6 类的函数

javascript - 如何在搜索时获取先前选择的 Bootstrap 数据表行

javascript - 在 Angular JS 中通过映射键进行过滤

c# - 如何在使用 BinaryWriter & Reader 时有效地实现文件的哈希验证?

validation - maven pom 验证因依赖而失败