1

Я использую загрузку v3 datetime picker в гибридном приложении. Существует метка , которая показывает дату и время в приложении. Поэтому всякий раз, когда пользователь clicks on the label должен отображать дату-время, выберите дату и время. Я его реализовал и хорошо работает.Bootstrap v3 - DateTime Picker - set Значение на iOS не работает

Теперь, когда сборщик всплывает, я могу установить дату & значение времени, чтобы показать, когда на панели отобразился сборщик.

$('#MetngSumryEditStartDateTime').data("DateTimePicker").date(moment(_defaultStDateTime).format('Do MMMM YYYY, h:mm a')); 

Запомнить, как требуется выбора, чтобы иметь поле ввода, чтобы работать на. Поэтому, когда я предоставляю текстовое поле, а затем на устройствах, появляется мягкая клавиатура! который действительно требуется в моем случае, потому что пользователю не разрешено вводить текстовое поле, и вместо этого метка должна показывать значения даты & времени.

Для этого я дал ему checkbox в качестве поля ввода. Теперь сборщики хорошо работают на Android devices и на рабочем столе browsers, например chrome, но на iOS не работает.

Полный список кодов.

<div class="container"> 
     <div class="row"> 
      <div id='meetingSumDateTimeEndArea'> 
      <span class='start'>End</span> 
      <span class='time' id='meetingSumEndTime'>" + (UserProfile.getUserProfileDetails().MeetingEndTime[i]) + "</span>" 
      <span class='date' id='meetingSumEndDate'>" + UserProfile.getUserProfileDetails().MeetingEndDate[i] + "</span>"  
      </div> 

      <input type='checkbox' id='MetngSumryEditEndDateTime' /> 

     </div> 
    </div> 

    <script type='text/javascript'> 
      $(function() {     
        var _defaultStTime ='9:00 pm'; // hardcoded for testing purpose 
        var _defaultStDate ='29 Mar, 2015'; // hardcoded for testing purpose 

        var _defaultStDateTime = _defaultStDate + ' ' + _defaultStTime ;     
        console.log('_defaultStDateTime=' + _defaultStDateTime ) ; 

        $('#meetingSumDateTimeEndArea').on('click', function(e){ 
         $('#MetngSumryEditEndDateTime').focus(); 
        }); 

        $('#MetngSumryEditEndDateTime').datetimepicker({ format:'Do MMMM YYYY, h:mm a' , sideBySide: true , defaultDate: _defaultStDateTime });                
        $('#MetngSumryEditEndDateTime').datetimepicker().on('dp.change',function(e) { 

         $('#MetngSumryEditEndDateTime').data("DateTimePicker").date(moment(_defaultStDateTime).format('Do MMMM YYYY, h:mm a'));  

         console.log(e.date.format('DD MMM, YYYY') ); 

         var tm = e.date.format('hh:mm a').split(' '); 
         console.log(tm[0] + " " + tm[1]);      

         console.log(e.date.format('hh:mm a') ); 

        }); 

      }); 

    </script> 

Update

Я попытался ниже предложил v4.13.28 и установить focusOnShow: false но еще клавиатура всплывает. Я попробовал это с текстовым полем.

Теперь я вернулся в checkbox поле, чтобы предотвратить мягкую клавиатуру, но проблема в iOS.

Я даю ему значения начальной даты и время, так что, когда сборщик открывает на IOS устройстве затем first time it shows the current time и если вы меняете в другое время и закрыть палитру и открыть его снова, то он показывает правильное время последнего изменения. Однако в случае дата, она показывает правильную дату поставки при ее открытии.

Так что хорошо обрабатывать дату, но имеет ошибку в настройках значения времени только в первый раз.

Как я это исправить?

ответ

0

Версия 4.13.28 (в настоящее время находится в dev branch) представляет focusOnShow.

При установке на false ввода текстового поля не получит фокус, который должен предотвратить клавиатуру от отображения на мобильных устройствах

+0

Хорошо, позвольте мне попробовать. – AAhad

+0

Сегодня у меня появился шанс попробовать эту версию. Но это все равно дает такую ​​же проблему. Пожалуйста, предложите? – AAhad

0

После долгих усилий, я нашел проблему.

Проблема связана с реализацией объекта JavaScript в Safari (iOS).

DateTimePicker компонент использует момент на дату/время манипуляции и момента в зависимости от реализации даты/времени ЗАМЕСТИТЕЛЯ укладки платформы.

Теперь, когда я использую ниже код для , выведите Время информации.

moment("1999-01-01 11:00 am").format("HH:mm:ss"); 

Это дает правильную информацию о времени на Android & таблетки Windows. Но это не распознается на iOS ... говорит ..... Недействительная дата.

Теперь копать дальше, если я даю такое же значение для JavaScript Даты объекта

new Date("1999-01-01 11:00 am"); 

Опять же преобразует его правильно на Android & устройств Windows, , но не на прошивке ... .says .... Недействительная дата.

Это означает, что реализация объекта Date нарушена или имеет проблемы с iOS.

Чтобы исправить мою проблему:

я предоставил еще один параметр в данный момент для того, чтобы извлечь данные только время.

moment("1999-01-01 11:00 am" , ['h:mm a']).format('HH:mm:ss'); 

Теперь это прекрасно работает везде.

Примечание: 1999-01-01 11:00 am жестко закодированы ради этого вопроса, хотя они динамически входят в приложение.