相关疑难解决方法(0)

使用ng-change进行日期输入验证,AngularJS

我在我的页面中使用AngularJS和AngularJS引导程序.我有一个日期选择器指令,如下所示:

    <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>
Run Code Online (Sandbox Code Playgroud)

要验证日期输入,在我的控制器中我有以下功能:

        $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';
        }
    }
Run Code Online (Sandbox Code Playgroud)

一切正常,检查插入的日期是否有效,但问题是,当日期输入留空(或从有效状态更改为空白)我希望它也可以接受,但由于空输入和无效日期是undefined我不知道该怎么情况之间申报.

我还想过直接读取输入文本:

document.getElementById('inpDate').value
Run Code Online (Sandbox Code Playgroud)

但是当值改变时触发了ng-change,而我留下了之前没用的前一个值...... …

javascript datepicker angularjs angular-ui-bootstrap angularjs-ng-change

2
推荐指数
1
解决办法
2万
查看次数