我创建了一个包含 textarea 和 JQuery Raty 插件的表单。Raty 插件是使用 Angular 指令添加的,该指令包括自定义表单验证,以确保用户实际评分。我的表单提交按钮取决于表单 $valid 状态。
问题是我的 form.$valid 值在我设置我的比率的有效性后没有刷新 - 它需要表单中的另一个用户操作来刷新该值。
例如,如果用户在文本区域中输入了评论,并且在该评分按钮之后仍将被禁用,则只有在他在评论文本区域中输入另一个字符后,按钮状态才会刷新。
如何立即在 form.$valid 上应用税率有效性的更改?
谢谢!
我的代码:
.directive("ngRaty", function() {
return {
require: 'ngModel',
restrict: 'E',
link: function(scope, elem, attrs,ctrl) {
ctrl.$setValidity('ngRaty',false);
$(elem).raty({score: attrs.score,
number: attrs.number,
path: '/resources/img/',
hints: ['Awaful', 'Bad', 'Ok', 'Good', 'Excellent'],
click: function (score, evt) {
scope.feedbackDetails.score=score;
ctrl.$setValidity('ngRaty',true);
}
}
)
}
}
});
<form name="feedbackForm" class="form-horizontal" novalidate>
<ng-raty ng-model="feedbackDetails.score" required></ng-raty>
<textarea name="review" ng-model="feedbackDetails.review" required></textarea>
<button ng-click="submitFeedback(feedbackDetails)" ng-disabled="!feedbackForm.$valid">Submit</button>
</form>