Tempusdominus datetimepicker и ASP.NET MVC - PullRequest
0 голосов
/ 13 ноября 2018

Я пытаюсь использовать https://tempusdominus.github.io/bootstrap-4/ в проекте ASP.NET MVC.

HTML

<div class="input-group date" data-target-input="nearest">
       @Html.TextBoxFor(model => model.TimeEnd,
        new { @class = "form-control form-control-sm  datetimepicker-input", 
                @data_toggle = "datetimepicker",
               @data_target = "#TimeEnd",
               type="text"
        })
      <div class="input-group-append" data-target="#TimeEnd" data-toggle="datetimepicker">
     <div class="input-group-text"><i class="fa fa-calendar"></i></div>
  </div>
</div>

Где model.TimeEnd - строка в формате dd.MM.yyyy HH:mm

JS

$(document).ready(function () {
   $('#TimeEnd').datetimepicker({
      locale: 'es', 
    });
});

Когда я открываю страницу, input имеет правильное значение , но оно не отображается в datetimepicker .

ОБНОВЛЕНИЕ # 1

Если я установлю defaultDate через ту же модель, что и defaultDate: '@Model.TimeEnd' (где это строка в формате dd.MM.yyyy HH: mm), тогда испанская локализация исчезнет , и я вижу английский календарь! Вот это да. И появляется следующая ошибка

moment-with-locales.min.js: 1 Предупреждение об устаревании: указано значение не в признанном формате RFC2822 или ISO. момент строительства падает вернуться к JS Date (), который не является надежным во всех браузерах и версии. Не RFC2822 / ISO форматы даты не рекомендуется и будет удален в следующем выпуске. Пожалуйста, обратитесь к http://momentjs.com/guides/#/warnings/js-date/ для получения дополнительной информации. Аргументы: [0] _isAMomentObject: true, _isUTC: false, _useUTC: false, _l: undefined, _i: 14.08.2018 00:00, _f: ноль, _strict: false, _locale: [объект объекта] Ошибка at Function.createFromInputFallback (http://localhost:62959/Scripts/moment-with-locales.min.js:1:3368) в ва (http://localhost:62959/Scripts/moment-with-locales.min.js:1:21353) в ва (http://localhost:62959/Scripts/moment-with-locales.min.js:1:22064) в сб (http://localhost:62959/Scripts/moment-with-locales.min.js:1:22146) в л (http://localhost:62959/Scripts/moment-with-locales.min.js:1:209) на k.i.getMoment (http://localhost:62959/Scripts/tempusdominus-bootstrap-4.min.js:6:14261) на k.i.defaultDate (http://localhost:62959/Scripts/tempusdominus-bootstrap-4.min.js:6:19874) в строке (http://localhost:62959/Scripts/tempusdominus-bootstrap-4.min.js:6:14947) на Function.each (http://localhost:62959/Scripts/jquery-3.3.1.js:360:19) при к.и.опциях (http://localhost:62959/Scripts/tempusdominus-bootstrap-4.min.js:6:14895)

Любая подсказка, как решить эту проблему?

1 Ответ

0 голосов
/ 14 ноября 2018

Кажется, проблема была в том, чтобы испортить input и обернуть div идентификаторы.

HTML

 <div class="form-group row">
                @Html.Label("Finish", new { @class = "col-sm-2 col-form-label", @for = "TimeStart2" })
                <div class="col-sm-10">
                    <div class="form-group">
                        <div class="input-group date" id="datetimepicker1" data-target-input="nearest">
                            <input id="TimeEnd" name="TimeEnd" value="@Model.TimeEnd" type="text" class="form-control form-control-sm datetimepicker-input" data-target="#datetimepicker1" />
                            <div class="input-group-append" data-target="#datetimepicker1" data-toggle="datetimepicker">
                                <div class="input-group-text"><i class="fa fa-calendar"></i></div>
                            </div>
                        </div>
               </div>
    </div>
</div>

JS

$(document).ready(function () {
    $('#datetimepicker1').datetimepicker({
         locale: 'es'
    });
});
...