2017-11-22 5 views
0

ui-datepickerを使用していますが、Chromeではうまく動作していますが、Safariでは正常に動作しています。私はCSSファイルを最初に置いてからJSファイルをメインのindex.htmlファイルに入れてみました。それは下にui-datepicker-divを生成していますが、Safariでは空です。ここで角度指示文でui-datepicker-divが空です

は、私が使用していますHTMLです:

<input type="image" src="images/calendar-icon.jpg" ng-model="selectedWeek" weekpicker format="yy-mm-dd" style="margin-left:10px;" /> 

を、ここで私が使用していたJavaScriptです:

myApp.directive('weekpicker', function() { 
     function link(scope, element, attrs, ngModelCtrl, $rootScope) { 
      var frmt = "mm/dd/yy"; 
      if (attrs.format != undefined) { 
        frmt = attrs.format; 
      } else if (attrs.placeholder != undefined) { 
        frmt = attrs.placeholder; 
      } 

      scope.getSunday = function(fromDate) { 
        var curr = new Date(fromDate); // get current date 
        var first = curr.getDate() - curr.getDay(); // First day is the day of the month - the day of the week 
        var firstday = new Date(curr.setDate(first)).toUTCString(); 
        return firstday; 
      }; 
      scope.getWeekDaysRange = function (inputDateString) { 
        return scope.getDates(new Date(inputDateString), (new Date(inputDateString)).addDays(6)); 
      }; 
      scope.getDates = function(startDate, stopDate) { 
        var dateArray = new Array(); 
        var currentDate = startDate; 
        while (currentDate <= stopDate) { 
          var curdate = new Date(currentDate); 
          var dateElements = { 
            day : cal_days_labels[curdate.getDay()], 
            date : curdate.getDate(), 
            month : cal_months_labels[curdate.getMonth()], 
            year : curdate.getFullYear(), 
            datestamp : curdate.getFullYear()+''+scope.padWithZero(curdate.getMonth()+1)+''+scope.padWithZero(curdate.getDate()) 
          }; 
          dateArray.push(dateElements); 
          currentDate = currentDate.addDays(1); 
        } 
        return dateArray; 
      }; 

      scope.padWithZero = function(number) { 
        if(number>-10 && number<10) { 
          number = '0'+number; 
        } 
        return number; 
      }; 


      $(element).datepicker({    
       showOtherMonths: true, 
       selectOtherMonths: true, 
       changeMonth: true, 
       changeYear: true, 
       showWeek: true, 
       beforeShow: function(dateText, inst) { 
       }, 
       onSelect : function(dateText, inst) { 
        current = {day: inst.currentDay, month : inst.currentMonth, year : inst.currentYear}; 

        var selectedDateString = new Date(current.year+'-' + (1+current.month) + '-' + current.day); 
        var weekBoundryDates = selectedDateString.getWeekBoundryDaysFromToday(); 

        var weekBoundries = weekString(weekBoundryDates); 
        scope.$apply(function() { 
         scope.selectedWeek = weekBoundries; 
        }); 
        scope.$digest(); 
        scope.$emit("weekselected", inst); 
       }, 
       onClose: function(dateText, inst) { 
       } 
      }); 
      scope.$watch(function(scope){ 
       return scope.selectedWeek; 
      }, function(newVal, oldVal){ 
      }); 
     }; 

    return { 
     restrict: 'A', 
     require: 'ngModel', 
     link: link 
    }; 
}); 

上記のコードは、SafariでChromeで正常に動作しますが、されていません。

誰でも助けてください。

+1

入力タイプの問題は画像の代わりに入力タイプのテキストを変更して確認してください。 – Sourabh

+0

あなたは素晴らしいです!、ありがとう、それは働いた。 –

+0

ニースそれはあなたのために働いて:) – Sourabh

答えて

1
Change input type image to text it will work :) 

<input type="text" src="images/calendar-icon.jpg" ng-model="selectedWeek" weekpicker format="yy-mm-dd" style="margin-left:10px;" /> 
関連する問題