javascript - angularjs 中的表单更改和有效性

标签 javascript angularjs forms angularjs-validation

每当我的表单中的任何非只读输入发生变化并且表单有效时,我都想执行某些操作。比方说,我的表格看起来像

<form name="form" novalidate>
    <input ng-model='input.a' required/>
    <input ng-model='input.b' required/>
    <input value='{{output.p | number: 2}}' readonly/>
    <input value='{{output.q | number: 2}}' readonly/>
</form>

现在,当 input 发生任何变化时,只要 input.ainput.b 有效,我就想做点什么。我尝试了 $watch(input),但没有成功。看着它的所有成员都这样做,但感觉很愚蠢。将 ng-change 添加到所有字段感觉更好,但仍然很愚蠢(非 DRY)。什么是正确的方法?


另一个问题是如何确定输入是否有效。如果我有一个按钮,我可以简单地做

<button ng-click="doIt()" ng-disabled="form.$invalid">

但是如何在 Controller 中访问 form.$invalid(它不包含在 $scope 中)?

最佳答案

你应该能够访问 form.$invalid

$scope.form.$invalid

参见此处:AngularJs can't access form object in controller ($scope)

要观察表单的变化,您应该能够做到:

$scope.$watchCollection('input')

关于javascript - angularjs 中的表单更改和有效性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22695446/

相关文章:

javascript - Angular 4 : How do I build a dynamic list of checkboxes to submit in a form?

javascript - 无法将光标移动到空 p 标签

Javascript slider 加载速度不够快

javascript - AngularJS 与 requirejs 的集成

javascript - AngularJS 中的单向绑定(bind) + 动态绑定(bind)

javascript - 在 Angular (PhoneGap) 中,构造 AJAX 调用并将返回用作可存储 JSON 数据的最佳方法是什么?

python - 如何在 Django 中生成自定义表单?

图像和表格之间的 HTML/CSS 文本段落

javascript - SlickGrid:如何查看列标题中的全文?

javascript - 尝试呈现 "loading"提示,但数据一旦准备好