AngularJS 日期验证
AngularJS date validation
如何在 AngularJS 表单中对以下代码进行日期控制验证?
<label for="startDate" class="control-label">Start Date:</label>
<div class="">
<input type="date" class="form-control"
id="startDate" ng-model="startDate" />
</div>
<label for="endDate" class="control-label">End Date:</label>
<div class="">
<input type="date" class="form-control"
id="endDate" ng-model="endDate" />
</div>
<div class="alert alert-warning" ng-show="">
// ??
</div>
如果只输入了其中一个日期,则表单应提示输入另一个日期。如果两个日期都为空,或者都输入了,那么它应该会成功提交表单。
您需要通过连接控制器来完成此操作。检查 $scope.startDate 是否为空。如果 !empty,则 $scope.endDate 必须为 !empty,否则不会出错。
` $scope.startDate = 空;
$scope.endDate = 空;
如果(!$scope.startDate){
if(!$scope.endDate) { $scope.error = false }
} else { if( !$scope.endDate ) { $scope.error = true; $scope.reason = "Enter valid end date." } `
这是我解决你问题的方法
HTML
<label for="startDate" class="control-label">Start Date:</label>
<div class="" >
<input type="date" class="form-control"
id="startDate" ng-model="startDate" />
</div>
<label for="endDate" class="control-label">End Date:</label>
<div class="">
<input type="date" class="form-control"
id="endDate" ng-model="endDate" />
</div>
<span>{{errMessage}}</span>
<button ng-click='checkErr(startDate,endDate)'>Submit</button>
将此代码添加到 HTML
的控制器中
$scope.checkErr = function(startDate,endDate){
$scope.errMessage = '';
if(!startDate && endDate){
$scope.errMessage = 'please Enter Start Date';
return false;
}
if(!endDate && startDate){
$scope.errMessage = 'please Enter End Date';
return false;
}
if(endDate && startDate || !endDate && !startDate ){
$scope.errMessage ='Successfully Submitted';
// you can add you submit function here
}
};
如果输入了其中一个日期并且还剩下一个,这将在提交按钮上方显示错误消息。它将显示用户应输入哪些日期,如果两个日期都已输入或两个日期均未输入,它将显示已成功提交。您可以在 if 情况下添加提交功能。
希望对您有所帮助
如果您不想使用任何控制器或 js 而想使用纯 HTML。试试这个方法
将您的 HTML 编辑为:
<label for="startDate" class="control-label">Start Date:</label>
<div class="">
<input type="date" class="form-control"
id="startDate" ng-model="startDate" />
</div>
<label for="endDate" class="control-label">End Date:</label>
<div class="">
<input type="date" class="form-control"
id="endDate" ng-model="endDate" />
</div>
<div class="alert alert-warning" ng-show="!startDate && endDate ||startDate && !endDate ">
// Do what ever you want to do here
</div>
也添加了这个答案,以便您可以选择最适合您的答案。如果你想在提交上做更多的功能,我强烈建议你使用控制器。如果您只对 UI 感兴趣,请继续使用简单的 HTML 解决方案
您可以调用此范围函数进行任何类型的日期验证,确保在 ng-submit 上触发 dateValidator(year,month,date)
$scope.dateValidator = function(year, month, date) {
var dates = new Date(year, month - 1, date);
if (dates.getFullYear() == year && dates.getMonth() + 1 == month && dates.getDate() == date) {
alertify.success('Valid Date');
} else {
alertify.error('Invalid date');
return false;
}
};
如何在 AngularJS 表单中对以下代码进行日期控制验证?
<label for="startDate" class="control-label">Start Date:</label>
<div class="">
<input type="date" class="form-control"
id="startDate" ng-model="startDate" />
</div>
<label for="endDate" class="control-label">End Date:</label>
<div class="">
<input type="date" class="form-control"
id="endDate" ng-model="endDate" />
</div>
<div class="alert alert-warning" ng-show="">
// ??
</div>
如果只输入了其中一个日期,则表单应提示输入另一个日期。如果两个日期都为空,或者都输入了,那么它应该会成功提交表单。
您需要通过连接控制器来完成此操作。检查 $scope.startDate 是否为空。如果 !empty,则 $scope.endDate 必须为 !empty,否则不会出错。
` $scope.startDate = 空; $scope.endDate = 空; 如果(!$scope.startDate){
if(!$scope.endDate) { $scope.error = false }
} else { if( !$scope.endDate ) { $scope.error = true; $scope.reason = "Enter valid end date." } `
这是我解决你问题的方法
HTML
<label for="startDate" class="control-label">Start Date:</label>
<div class="" >
<input type="date" class="form-control"
id="startDate" ng-model="startDate" />
</div>
<label for="endDate" class="control-label">End Date:</label>
<div class="">
<input type="date" class="form-control"
id="endDate" ng-model="endDate" />
</div>
<span>{{errMessage}}</span>
<button ng-click='checkErr(startDate,endDate)'>Submit</button>
将此代码添加到 HTML
的控制器中$scope.checkErr = function(startDate,endDate){
$scope.errMessage = '';
if(!startDate && endDate){
$scope.errMessage = 'please Enter Start Date';
return false;
}
if(!endDate && startDate){
$scope.errMessage = 'please Enter End Date';
return false;
}
if(endDate && startDate || !endDate && !startDate ){
$scope.errMessage ='Successfully Submitted';
// you can add you submit function here
}
};
如果输入了其中一个日期并且还剩下一个,这将在提交按钮上方显示错误消息。它将显示用户应输入哪些日期,如果两个日期都已输入或两个日期均未输入,它将显示已成功提交。您可以在 if 情况下添加提交功能。
希望对您有所帮助
如果您不想使用任何控制器或 js 而想使用纯 HTML。试试这个方法
将您的 HTML 编辑为:
<label for="startDate" class="control-label">Start Date:</label>
<div class="">
<input type="date" class="form-control"
id="startDate" ng-model="startDate" />
</div>
<label for="endDate" class="control-label">End Date:</label>
<div class="">
<input type="date" class="form-control"
id="endDate" ng-model="endDate" />
</div>
<div class="alert alert-warning" ng-show="!startDate && endDate ||startDate && !endDate ">
// Do what ever you want to do here
</div>
也添加了这个答案,以便您可以选择最适合您的答案。如果你想在提交上做更多的功能,我强烈建议你使用控制器。如果您只对 UI 感兴趣,请继续使用简单的 HTML 解决方案
您可以调用此范围函数进行任何类型的日期验证,确保在 ng-submit 上触发 dateValidator(year,month,date)
$scope.dateValidator = function(year, month, date) {
var dates = new Date(year, month - 1, date);
if (dates.getFullYear() == year && dates.getMonth() + 1 == month && dates.getDate() == date) {
alertify.success('Valid Date');
} else {
alertify.error('Invalid date');
return false;
}
};