Angularjs 日期选择器日期验证

Angularjs 日期选择器日期验证,angularjs,datepicker,Angularjs,Datepicker,如果在选择日期后,用户删除了从Datepicker中选择的日期的一半,例如,所选日期:2013年12月20日,用户手动从输入框中删除2013年,然后单击保存操作,是否有方法验证从Datepicker中选择的日期 现在,当我试图调试并捕获服务器端的自定义解析异常时,我从bean中获得的值已经为null 您能告诉我如何在angular controller本身上解析此日期吗?您必须编写一个自定义验证指令: 以下指令采用在输入字段中设置的日期字符串。如果日期选择器使用其他方法,则必须稍微更改此指令 m

如果在选择日期后,用户删除了从Datepicker中选择的日期的一半,例如,所选日期:2013年12月20日,用户手动从输入框中删除2013年,然后单击保存操作,是否有方法验证从Datepicker中选择的日期

现在,当我试图调试并捕获服务器端的自定义解析异常时,我从bean中获得的值已经为null


您能告诉我如何在angular controller本身上解析此日期吗?

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

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

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:


日期无效

日期有效


我将我的日期选择器与jquery validate一起使用,工作起来很有魅力,也许你可以试试我使用的是angularjs。对不起,我在描述中遗漏了它。它一定要在表单元素中吗?我可以将该名称class='so'赋予输入类型本身吗?@user2507845您使用的是什么日期选择器?我希望禁用日期验证器,以便客户端日历实现仍能使用type=date
<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>