AngularJS - 如何在嵌套表单中触发提交

angularjs

1个回答

写回答

Deepblue2021

2025-07-09 16:55

+ 关注

AngularJS
AngularJS

在AngularJS中,嵌套表单是一种非常常见的情况。当我们需要在嵌套表单中触发提交操作时,可能会遇到一些困惑。本文将介绍如何在AngularJS中实现在嵌套表单中触发提交操作,并提供一个案例代码来帮助理解。

案例代码:

<!DOCTYPE html>

<html ng-app="myApp">

<head>

<script src="https://Ajax.Googleapis.com/Ajax/libs/AngularJS/1.7.9/angular.min.JS"></script>

<script src="https://cdnJS.cloudflare.com/Ajax/libs/angular-messages/1.7.9/angular-messages.min.JS"></script>

</head>

<body>

<div ng-controller="myCtrl">

<form name="mAInForm" ng-submit="submitForm()">

<h2>MAIn Form</h2>

<label>Name:</label>

<input type="text" name="name" ng-model="formData.name" required>

<br>

<div ng-messages="mAInForm.name.$error" ng-if="mAInForm.name.$touched">

<div ng-message="required">Name is required.</div>

</div>

<br>

<div ng-controller="nestedCtrl">

<h2>Nested Form</h2>

<label>EmAIl:</label>

<input type="emAIl" name="emAIl" ng-model="formData.emAIl" required>

<br>

<div ng-messages="form.emAIl.$error" ng-if="form.emAIl.$touched">

<div ng-message="required">EmAIl is required.</div>

<div ng-message="emAIl">Invalid emAIl address.</div>

</div>

<br>

<button type="submit" ng-disabled="form.$invalid">Submit</button>

</div>

</form>

</div>

<script>

var app = angular.module('myApp', ['ngMessages']);

app.controller('myCtrl', function ($scope) {

$scope.formData = {};

$scope.submitForm = function () {

console.log('MAIn Form submitted with data:', $scope.formData);

};

});

app.controller('nestedCtrl', function ($scope) {

$scope.formData = {};

$scope.submitForm = function () {

console.log('Nested Form submitted with data:', $scope.formData);

};

});

</script>

</body>

</html>

首先,我们需要在HTML中引入AngularJS和Angular Messages的库文件。然后,我们创建一个名为"myApp"的AngularJS应用,并在HTML中将其应用于一个父级容器。

在控制器"myCtrl"中,我们定义了一个名为"mAInForm"的表单,并且在表单中添加了一个文本输入框用于输入姓名。我们使用ng-model指令将输入框的值与$scope.formData.name进行绑定,并且设置了required属性来确保输入框不能为空。在输入框下方,我们使用ng-messages指令来显示验证错误消息。

在控制器"nestedCtrl"中,我们定义了一个名为"form"的嵌套表单,并且在表单中添加了一个文本输入框用于输入邮箱地址。同样,我们使用ng-model指令将输入框的值与$scope.formData.emAIl进行绑定,并且设置了required和emAIl属性来进行验证。在输入框下方,我们使用ng-messages指令来显示验证错误消息。

最后,我们为提交按钮添加了ng-disabled指令,以确保只有在表单验证通过时才能点击提交按钮。当点击提交按钮时,会触发相应控制器中的submitForm函数,并将表单数据打印到控制台中。

通过这个案例代码,我们可以清楚地看到如何在嵌套表单中触发提交操作。在嵌套表单中,每个表单都有自己的控制器,并且可以独立地进行验证和提交操作。使用ng-messages指令可以方便地显示验证错误消息,以提供更好的用户体验。

通过本文的介绍和案例代码,我们学习了如何在AngularJS中实现在嵌套表单中触发提交操作。我们了解了如何使用ng-model指令来绑定表单输入框的值,如何使用ng-messages指令来显示验证错误消息,以及如何使用ng-disabled指令来禁用提交按钮。希望本文能够帮助您更好地理解和应用AngularJS中的嵌套表单功能。

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号