使用Angularjs有一种方法只能在javascript中提交表单的各个部分吗?

时间:2015-06-10 21:27:55

标签: javascript angularjs forms

  

版本: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

1 个答案:

答案 0 :(得分:3)

使用此HTML

<form name="form">
    <fieldset ng-form="step1form"></fieldset>
    <fieldset ng-form="step2form"></fieldset>
</form>

您应该可以在控制器中访问它,如下所示:

console.log($scope.form.step1form);