我想以角度方式對錶單進行驗證。我有三個輸入框。當輸入其中一個時,所有三個都是必需的。否則,他們不是必需的。只有在輸入了三個或不輸入時,才能啓用繼續按鈕。使用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