Как сравнить два значения тегов Input?

334
24 ноября 2017, 08:55

function checkDate() { 
  var first_1 = document.getElementById('first').value(); 
  var second_2 = document.getElementById('second').value(); 
  if (first_1 > second_2) { 
    alert("введен неправильный промежуток времени "); 
  } else if (first_1 == second_2) { 
    alert("введенные даты одинаковы "); 
  } 
}
<input id="first" type="date"> <input id="second" type="date">

Как проверить на корректность два значения тега input, значениями которых являются даты. Не допустимо использование сторонних фреймов.

Answer 1

Без обертывания в Date.parse() -> сравниваются строки.

function checkDate() {
   var first_1 = Date.parse(document.getElementById('first').value);
   var second_2 = Date.parse(document.getElementById('second').value);
   if (first_1 > second_2) {
      alert("введен неправильный промежуток времени ");
   } else if (first_1 == second_2) {
      alert("введенные даты одинаковы ");
   }
 }
Answer 2

.val(); - Используется в Jquery в JS используется: .value;

function checkDate() { 
  var first_1 = document.getElementById('first').value; 
  var second_2 = document.getElementById('second').value; 
     
  var a = Date.parse(first_1); 
  var b = Date.parse(second_2);  
  
  if (isNaN(a)){ 
    alert("не число!"); 
    return; 
  }else{ 
   if (a.toLocaleString() > b.toLocaleString() || 
      a.toLocaleString() < b.toLocaleString()) { 
    alert("введен неправильный промежуток времени "); 
   }else if (a.toLocaleString() == b.toLocaleString()) { 
    alert("введенные даты одинаковы "); 
   }  
  } 
}
<input id="first" type="date">  
<input id="second" type="date"> 
 
<input type="button" value="Сравнить" onclick="checkDate()">

Правильнее наверное будет вот так:

С первичной проверкой

function checkDate() { 
  var first_1 = document.getElementById('first').value; 
  var second_2 = document.getElementById('second').value; 
     
  var a = Date.parse(first_1); 
  var b = Date.parse(second_2);  
  
  if (isNaN(a) || isNaN(b)){ 
    alert("не число!"); 
    return; 
  }else{ 
   if (a.toLocaleString() > b.toLocaleString() || 
      a.toLocaleString() < b.toLocaleString()) { 
    alert("введен неправильный промежуток времени "); 
   }else if (a.toLocaleString() == b.toLocaleString()) { 
    alert("введенные даты одинаковы "); 
   }  
  } 
}
<input id="first" type="date">  
<input id="second" type="date"> 
 
<input type="button" value="Сравнить" onclick="checkDate()">

READ ALSO
Uncaught SyntaxError: Unexpected token { [требует правки]

Uncaught SyntaxError: Unexpected token { [требует правки]

Подскажите, пожалуйста, что в этом коде не так:

249
Async Actions React

Async Actions React

Добрый вечер, помогите новичку с Async ActionsМне нужно дождаться пока загрузится вся фронтенд часть (пока загружается фронтенд часть работает...

340
Сумма смежнных элементов массива

Сумма смежнных элементов массива

Вечер добрый! Какой метод использовать для нахождения максимального значения произведения смежных элементов массива [9, 5, 10, 2, 24, -1, -48]?

294
Как сделать анимацию на js

Как сделать анимацию на js

Объясните, как сделана анимация на первом экране сайта nv9ru

263