javascript - 自动生成表单的 AngularJS 表单验证

标签 javascript angularjs forms validation

我正在尝试验证自动生成的表单(通过AngularJS v1.3),其输入名称的格式为:

form_name[field_name]

最基本的例子是:

<form name="morgageCalculator">
        <input type="text" class="form-control" 
            name="morgageCalculator[homeValue]" value="0"
            data-ng-model="data.homeValue" required="required"/>
</form>

如您所见,输入名称为 morgageCalculator[homeValue]。现在我想在其下面添加一条错误消息:

<div class="error"
     data-ng-show="!morgageCalculator.morgageCalculator[homeValue].$pristine && morgageCalculator.morgageCalculator[homeValue].$invalid">
    Please enter a number
</div>

由于非常明显的语法原因,此表达式无效:

morgageCalculator.morgageCalculator[homeValue].$pristine

但是这个也不起作用:

morgageCalculator["morgageCalculator[homeValue]"].$pristine

那么,问题,是否有访问这些字段的合理方法?我不介意将验证转移到某些 Controller 功能,但我面临着无法访问字段对象的相同问题。

任何帮助/提示将不胜感激。

最佳答案

在评论部分@dfsq的帮助下,我找到了错误。与我的问题不同,我的代码缺少 data-ng-model

如果输入未绑定(bind)到模型,验证根本不会触发......

正确的代码片段:

<form name="morgageCalculator">
    <input type="text" class="form-control" 
        name="morgageCalculator[homeValue]" value="0"
        data-ng-model="data.homeValue" required="required"/>


    <div class="error"
        data-ng-show="!morgageCalculator['morgageCalculator[homeValue]'].$pristine && morgageCalculator['morgageCalculator[homeValue]'].$invalid">
            Please enter a number
    </div>
</form>

关于javascript - 自动生成表单的 AngularJS 表单验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34188257/

相关文章:

python - Django 中相同表单的两个不同提交按钮

php - 从下拉菜单中插入数据到数据库,其数据是从另一个数据库导入的

javascript - 从 MySQL 数据库在 Google map 上添加多个标记

javascript - 嵌套在 Popover 中的 ng-repeat 不起作用

php - 我可以同时提交两份表格吗?

javascript - 避免形式 -Angular js 中的默认警告

javascript - 作为纯文本加载的脚本 - 未声明纯文本文档的字符编码。

javascript - 需要将 ajax 响应存储到全局变量

javascript - iframe 的生成源仍然阻止以 Angular 方式访问 iframe

javascript - Angular - 如何将参数传递到延迟 promise 中?