版本:Angular 1.4
我有一个带有字段集的表单,表示我希望用户填写的不同部分。可以使用下一个和上一个按钮来导航这些部分。我想提出一些限制,只有当用户完成了有效输入的部分时,他们才会转到下一部分。
这个问题和答案中都说明了这一点: Angular JS: Validate form fields before submit
但是我正在寻找一个稍微不同的解决方案。我打算在我的javascript中使用控制下一个按钮的逻辑。
有没有办法从我的javascript访问这些ng-form属性?我尝试过相同的方式,通过它的名称属性可以访问表单,但尽管如此,我得到一个错误,说这个变量不可用。
我基本上想要在用户点击下一个时检查字段集的有效性,如果表单无效,则在该部分显示相应的错误而不提交表单。
我已经在Anuglars网站上检查了表格的文件而没有运气。
感谢任何帮助。
编辑: 所以我找到了子表单ng-form的文档: https://docs.angularjs.org/api/ng/directive/ngForm
该文档指出,当我使用此指令时,它将以相同的名称发布到范围,但是当我尝试访问它时,我的js中它不可用。例如:
<form name="form">
<fieldset ng-form="step1form"></fieldset>
<fieldset ng-form="step2form"></fieldset>
</form>
显然在控制器内的js中:
console.log(form);
// <form name="form">...</form>
console.log(step1form);
// ReferenceError: step1form is not defined
答案 0 :(得分:3)
使用此HTML
<form name="form">
<fieldset ng-form="step1form"></fieldset>
<fieldset ng-form="step2form"></fieldset>
</form>
您应该可以在控制器中访问它,如下所示:
console.log($scope.form.step1form);