【发布时间】:2015-04-27 14:53:19
【问题描述】:
在下面的示例中,是否可以忽略下拉列表的脏状态?现在,如果用户更改选定的人,它会变得很脏。但我不在乎这个字段在我的表单验证中是否脏。
function TestingCtrl($scope) {
$scope.company = '';
$scope.persons = [{
name: 'Alice'
}, {
name: 'Bob'
}];
$scope.selectedPerson = $scope.persons[0];
$scope.checkForm = function() {
if ($scope.personForm.$dirty) {
alert('Form is dirty');
} else {
alert('Form is clean');
}
}
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular.min.js"></script>
<div ng-app>
<div ng-controller="TestingCtrl">
<form name="personForm" novalidate>
Company:
<input type="text" ng-model="company" required>
<br>Persons:
<select ng-options="p.name for p in persons" ng-model="selectedPerson"></select>
</form>
<br>
<button ng-click="checkForm()">Check if dirty</button>
</div>
</div>
【问题讨论】:
-
如果您不需要验证,请不要将这些控件放在表单旁边
-
如果你想部分验证你的表单 - 使用 ng-form 指令并检查它的状态(validi/dirty/pristine 等)
标签: angularjs forms validation