【发布时间】:2014-05-11 17:51:40
【问题描述】:
我在我的页面中使用 AngularJS 和 AngularJS bootstrap。我有一个日期选择器指令,如下所示:
<div class="form-group {{dateStatus.class}}">
<p class="input-group">
<input type="text" id="inpDate" class="form-control"
datepicker-popup="dd-MMMM-yyyy" ng-model="task.date"
is-open="datePickerStatus.isOpen" min-date="minDate"
datepicker-options="dateOptions" ng-required="true"
close-text="Close" placeholder="Due date"
ng-change="checkDateValidity()"
/>
<span class="input-group-btn">
<button type="button" class="btn btn-default"
ng-click="openDatePicker($event)"
>
<i class="glyphicon glyphicon-calendar"></i>
</button>
</span>
</p>
</div>
要验证日期输入,在我的控制器中,我有以下功能:
$scope.checkDateValidity = function(){
var date,
isValid,
taskDate;
taskDate = $scope.task.date;
date = new Date(taskDate);
isValid = !isNaN(date);
if(isValid) {
$scope.addButtonState.isOk = true;
$scope.dateStatus.class = '';
}
else{
$scope.addButtonState.isOk = false;
$scope.dateStatus.class = 'has-error';
}
}
检查插入的日期是否有效,一切正常,但问题是当日期输入留空(或从有效状态更改为空白)
我也希望它是可以接受的,但是由于空输入和无效日期都是undefined我不知道如何在案例之间声明。
我也想过这样直接读取输入文本:
document.getElementById('inpDate').value
但是当值改变时会触发 ng-change,我只剩下以前的值,现在没用了......
感谢您的时间和回复。
【问题讨论】:
标签: javascript angularjs datepicker angular-ui-bootstrap angularjs-ng-change