日期选择器未突出显示所选日期

4

我正在使用Angular.js在MVC 5 Web应用程序中。我的网页上有日期选择器。

指令

myApp.directive('datepicker', function () {
return {
    restrict: 'A',
    require: 'ngModel',
    link: function (scope, element, attrs, ProfileCtrl) {
        element.datepicker({
            autoclose: true,
            onSelect: function (date) {
                ProfileCtrl.$setViewValue(date);
                scope.$apply();
            }
        });
    }
};});

输入标签

<div class="form-group">
    <label for="dob" class="col-sm-4 control-label text-left">DOB</label>
    <div class="col-md-8">
       <input type="text" datepicker name="dob" class="form-control" ng-model="models.DOB" />
    </div>
 </div>

一切正常。

enter image description here

但是我遇到了一个问题,当我尝试从数据库加载日期值到文本框中时,日期选择器没有突出显示所选日期,并且日期选择器的日期格式与文本框不同。请参见下面的图像。

enter image description here


你是否已经使用格式选项初始化了 datepicker?如果是的话,请检查所选的日期 2015年1月6日。因此,当您将其设置为 datepicker 时,基本上需要注意 format - Guruprasad J Rao
感谢您宝贵的回复。所选日期为2015年6月1日。我已经在指令中设置了dateFormat: 'MM/dd/yyyy'格式,但它并没有起作用。 - Ragesh S
那么您可能需要尝试@PrajapatiVikas建议的解决方案,将其转换为指定格式,然后再将其设置为“datepicker”。 - Guruprasad J Rao
1个回答

2

尝试使用以下代码来纠正您的日期格式并进行检查:

    $scope.models.DOB=GetFormattedDate(models.DOB);
    function GetFormattedDate(dateString, replaceNullValue) {
         if (replaceNullValue == false && IsBlank(dateString)) {
           return "";
         }
        var dt = dateString != null ? new Date(dateString) : new Date();
        var d = dt.getDate();
        var dd = d < 10 ? "0" + d : d;
        var m = dt.getMonth() + 1;
        var mm = m < 10 ? "0" + m : m;
        var y = dt.getFullYear();
        return mm + "/" + dd + "/" + y;
    }

感谢您宝贵的回复。我正在使用您的方法,但是日期选择器没有突出显示日期选择器中现有的值。我的意思是,我尝试在日期选择器中用蓝色突出显示数据库日期值。 - Ragesh S

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接