>我有两个输入字段,一个是From Year
,另一个是To Year
。仅当表单的提交按钮大于From Year
值时,我才必须验证To Year
。
这是从年份开始的代码:
<div class="col-md-6 no-pad-right">
<label>Tenure From Year</label>
<input name="tenure_from_year" ng-model="joinFormData.tenureFromYear" name="tenure_from_year" class="form-control" placeholder="2014" type="text" ng-required="joinFormData.memberType == 'alumni'" ng-maxlength="4" ng-pattern="/(?:(?:19|20)[0-9]{2})/">
<span ng-show="joinForm.tenure_from_year.$error.pattern || joinForm.tenure_from_year.$error.maxlength">
<span class="red-color">Enter correct year!</span>
</span>
</div>
这是 to year 的代码:
<div class="col-md-6 no-pad-right">
<label>Tenure To Year</label>
<input name="tenure_to_year" ng-model="joinFormData.tenureToYear" name="tenure_to_year" class="form-control" placeholder="2014" type="text" ng-required="joinFormData.memberType == 'alumni'" ng-maxlength="4" ng-pattern="/(?:(?:19|20)[0-9]{2})/">
<span ng-show="joinForm.tenure_to_year.$error.pattern || joinForm.tenure_to_year.$error.maxlength">
<span class="red-color">Enter correct year! </span>
</span>
</div>
如果表单无效,则禁用提交按钮
<button type="submit" class="btn btn-default btn-save-custom" ng-click="joinLeap()" ng-disabled="joinForm.$invalid" >Submit</button>
那么我如何验证开始年份和结束年份字段,以便在年份有效时启用提交按钮。
您可以使用watch .
$scope.validate = false;
$scope.$watch('joinFormData.tenureFromYear', function (newVal, oldVal) {
if (newVal > oldVal) {
$scope.validate = true;
} else {
$scope.validate = false;
}
});
比较您在ng-click
中提到的方法joinLeap()
ng-model
字段中的字段
$scope.dateValidation = false;
$scope.joinLeap = function (joinFormData) {
if (joinFormData.tenureToYear > joinFormData.tenureFromYear) {
$scope.dateValidation = true;
} else {
$scope.dateValidation = false;
}
}
通过ng-click
方法传递参数
<button type="submit" class="btn btn-default btn-save-custom" ng-click="joinLeap(joinFormData)" ng-disabled="joinForm.$invalid || !dateValidation" >Submit</button>
我想这会对你有所帮助。 根据要求为日期验证设置真、假值。