Странное поведение условия if в jquery - PullRequest
1 голос
/ 23 октября 2011

У меня есть плагин jquery datepicker, вот код: http://dpaste.com/639849/

Настоящая проблема заключается в функции подсветки, в которой условие if никогда не выполняется. Условие if:

if ($('#id_checkin').datepicker('getDate') == date) {
  return [false, ''];
 }  

Хотя я попытался вывести значения переменной даты и $ ('# id_checkin'). Datepicker ('getDate') с помощью console.log. В какой-то момент оба значения одинаковы. Вот вывод обоих значений:

Пт 28 октября 2011 00:00:00 GMT + 0530
Пт 28 октября 2011 00:00:00 GMT + 0530

Моя проблема в том, что если они совпадают по значению, почему нет, если утверждение так считает? :( Пожалуйста, руководство. Спасибо

1 Ответ

1 голос
/ 23 октября 2011

Они одного типа или просто переводятся в одно и то же представление? Попробуйте изменить это на if ($('#id_checkin').datepicker('getDate').toString() == date.toString()) и посмотрите, что произойдет.

edit: относительно того, почему ... Это может быть потому, что одним из этих значений является какой-то странный объект даты. JavaScript будет пытаться привести типы, но, скорее всего, он будет работать только с теми типами, о которых он знает. Мое второе предположение состоит в том, что одна (или обе) из этих дат имеют ненулевую миллисекундную часть. Поскольку миллисекунды не включаются в выходные данные, вызываемые toString(), возможно, они совпадают по своему строковому представлению, но не по фактическому значению. Попробуйте вывести свойство value (при условии, что обе стороны являются действительными объектами Date) и посмотрите, что там происходит.

...