Дата ввода HTML подкачки javascript

У меня есть следующий код. Но когда я меняю местами значения, оба значения становятся одинаковыми.

Например:

datetimepicker = 25-04-18 17:32 и datetimepicker = 24-04-18 17:32, их нужно поменять местами, но в результате оба являются 24-04-18 17:32.

Почему это происходит?

function swap() {
  var start = document.getElementById("datetimepicker").value;
  var end = document.getElementById("datetimepicker2").value;
  if (start.trim() && end.trim()) {
    var date_start = moment(start, 'DD-MM-YY HH:mm');
    var date_end = moment(end, 'DD-MM-YY HH:mm');
    if (date_start > date_end) {
      document.getElementById("datetimepicker").value = end;
      document.getElementById("datetimepicker2").value = start;
    }
  }
}
<script src = "https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/moment.min.js"></script>

<input onchange = "swap()" type = "date" id = "datetimepicker" />
<input onchange = "swap()" type = "date" id = "datetimepicker2" />

Я сделал вам отрывок. Пожалуйста, добавьте код, который устанавливает дату - сейчас они доступны только для чтения

mplungjan 25.04.2018 17:38

@mplungjan код большой, потому что я использую библиотеку datetimepicker. Я не хотел помещать больше необходимой информации.

Lechucico 25.04.2018 17:38

Я бы предложил переименовать ваши переменные. Используйте что-то вроде startDate и endDate.

adprocas 25.04.2018 17:39

Ваш код в том виде, в каком он был опубликован, НАЧАЛЬНО работает отлично, если я удалю файл только для чтения.

mplungjan 25.04.2018 17:41

Я вижу, что это работает, но у меня такой же код, и он не меняет местами элементы ...

Lechucico 25.04.2018 17:44

@Lechucico Единственное отличие, я думаю, в том, что тогда у вас есть датапикер, зарегистрированный на элементах. Попробуйте удалить datepicker и посмотрите, работает ли он для вас. Затем выясните, что делает datepicker

Xatenev 25.04.2018 17:45

Я играл с ним, и иногда он делает некоторые странные вещи. Интересно, может быть, это должна быть проверка. Я предполагаю, что вы не хотите, чтобы дата начала была позже даты окончания. Поскольку кому-то это действительно может понадобиться временно, и это может сбить с толку пользователей, лучше оставить его доступным и не разрешать отправку формы, потому что в этот момент она не прошла валидацию. Именно так решают эту ситуацию большую часть времени.

adprocas 25.04.2018 17:46

@Xatenev Я удалил указатель даты, и он работает. Похоже, datepicker что-то с этим делает.

Lechucico 25.04.2018 17:47

Например, я пользователь и выбираю 26-е число в качестве даты начала. Затем 27 числа в качестве даты окончания. Тогда я думаю, что, может, мне стоит сделать это 24 и 25 числа. Затем я выбираю дату окончания 25-го числа, но это меняет дату начала. Затем я запутался в том, что происходит, потому что я намеревался изменить дату начала на 24-е, но теперь датой начала является 25-е, что заставило меня выполнить дополнительный щелчок. Я не думаю, что это экономит клики, и я думаю, что это причина, по которой вы, вероятно, захотите реализовать такую ​​замену дат. Итак, на мой взгляд, неудачная проверка - ваш лучший выбор.

adprocas 25.04.2018 17:49

@adpro Я пойду по этому пути, т.к. похоже, что с этим datepicker какая-то ошибка.

Lechucico 25.04.2018 17:51
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
10
40
0

Другие вопросы по теме