Datepicker日期验证

时间:2013-12-26 09:45:22

标签: angularjs datepicker

有没有办法验证从Datepicker中选择的日期,如果选择日期后用户删除了一半,例如选择日期:2013年12月20日,用户手动从输入框中删除2013,并点击保存动作。

现在,当我尝试在服务器端调试并捕获自定义解析异常时,我从bean获取的值已经为空。

你能告诉我如何在角度控制器本身上解析这个日期吗?

1 个答案:

答案 0 :(得分:2)

您必须编写自定义验证指令: Fiddle

以下指令采用在输入字段中设置的日期字符串。如果您的日期选择器使用其他方法,则必须稍微更改此指令。

myApp.directive('isDate', function () {
    return {
        require: 'ngModel',
        link: function (scope, elem, attr, ngModel) {
            function validate(value) {

                var d = Date.parse(value);

                // it is a date
                if (isNaN(d)) { // d.valueOf() could also work
                    ngModel.$setValidity('valid', false);
                } else {
                    ngModel.$setValidity('valid', true);
                }
            }

            scope.$watch(function () {
                return ngModel.$viewValue;
            }, validate);
        }
    };
});

HTML:

<form name="so">
    <input type="text" ng-model="date" is-date required/>
    <p ng-show="!so.$valid">Date is invalid!</p>
    <p ng-show="so.$valid">Date is valid!</p>
</form>