我有一个条件,如果用户输入联系号码或电子邮件表格应被视为有效,为了完成这项工作,我尝试使用$ setValidity但不起作用,下面是我的代码:
if($scope.contact.contactNumber || $scope.contact.email) {
$scope.addContactForm.contactNumber.$setValidity('required', false);
$scope.addContactForm.email.$setValidity('required', false);
// In console it will show invalid as true & valid as false
console.log('Scope:', $scope.addContactForm);
}
答案 0 :(得分:0)
这是因为你做错了。如果要将字段设置为有效状态,则应将true作为第二个参数传递。阅读documentation。
下面是如何正确使用$ setValidity的示例。
angular.module('app', []);
angular.module('app').controller('Example', function () {
this.setValid = () => {
this.form.contactNumber.$setValidity('required', true);
this.form.email.$setValidity('required', true);
};
this.setInvalid = () => {
this.form.contactNumber.$setValidity('required', false);
this.form.email.$setValidity('required', false);
};
});

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.js"></script>
<div ng-app="app" ng-controller="Example as Example">
<form name="Example.form">
<input type="text" name="contactNumber" ng-model="contactNumber" required><br>
<input type="text" name="email" ng-model="email" require>
</form>
<br>
$invalid = {{Example.form.$invalid}}, $valid = {{Example.form.$valid}}<br>
<button type="button" ng-click="Example.setValid()">set valid</button>
<button type="button" ng-click="Example.setInvalid()">set invalid</button>
</div>
&#13;
答案 1 :(得分:0)
如果有人遇到相同的问题,发布此信息可能会有所帮助。我尝试传递null,它开始工作,而不是false。
$('.keypress').click(function(e) {
var code = $(this).data('code');
var e = jQuery.Event("keydown");
e.which = 65;
$('#input').trigger(e);
});
我希望它对某人有帮助