我想以角度方式对表单进行验证。我有三个输入框。当输入其中一个时,所有三个都是必需的。否则,他们不是必需的。只有在输入了三个或不输入时,才能启用继续按钮。使用angularjs进行表单验证
您可以查看this plunker上的代码。 这里有一个片段,也以防万一plunker不便:
angular.module('test', []).config(function() {});
angular.module('test').controller('testctrl', function($rootScope, $scope, $location) {
$scope.admin = [{
"number": "2"
}];
$scope.adminInfos = {};
$scope.validations = {};
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<form name="test_form">
<input type="text" name="admin{{admin.number}}_firstname" ng-model="adminInfos[admin.number].firstname" placeholder="First Name" ng-required="adminInfos[admin.number].lastname.length && adminInfos[admin.number].email.length" />
<span ng-show="!system_admins.admin{{admin.number}}_firstname.$pristine && (adminInfos[admin.number].email.length || adminInfos[admin.number].lastname.length) && !adminInfos[admin.number].firstname.length" class="error">First name is required</span>
<br/>
<input type="text" name="admin{{admin.number}}_lastname" ng-model="adminInfos[admin.number].lastname" placeholder="Last Name" ng-required="adminInfos[admin.number].firstname.length && adminInfos[admin.number].email.length" />
<span ng-show="!system_admins.admin{{admin.number}}_lastname.$pristine && (adminInfos[admin.number].email.length || adminInfos[admin.number].firstname.length) && !adminInfos[admin.number].lastname.length" class="error">Last name is required</span>
<br/>
<input type="text" name="admin{{admin.number}}_email" ng-model="adminInfos[admin.number].email" placeholder="Email Address" ng-required="adminInfos[admin.number].firstname.length && adminInfos[admin.number].lastname.length" />
<span ng-show="!system_admins.admin{{admin.number}}_email.$pristine && !adminInfos[admin.number].email.length && (adminInfos[admin.number].lastname.length || adminInfos[admin.number].firstname.length)" class="error">Email is required</span>
<br/>
<br/>
<button ng-disabled="test_form.$invalid">Continue</button>
</form>
我有一个问题,即继续,如果我输入名字按钮仍处于启用状态,并留下了姓名和电子邮件作为空白。
如果不输入全部三个或全部输入三个,则必须启用继续按钮。
哦..那真是个愚蠢的错误。不管怎么说,多谢拉!! – user4925190