2015-03-05 3 views
0

У меня есть вход так:Прослушивание изменений на дату HTML ввода

<input type="date"> 

Всякий раз, когда пользователь изменяет дату, я поставил печенье под названием «asOfDate» и обновите страницу. Сервер перекомпонует данные на основе «asOfDate».

Javascript выглядит следующим образом:

$("input").change(function(){ 
    $.cookie("asofdate", $(this).val()); 
    window.location.reload(); 
}); 

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

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

+0

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

ответ

-1

Как сказал @Rakesh_Kumar, вам нужно поймать его, когда вы потеряете фокус ввода. Это можно сделать с помощью функции blur(). You Затем код выглядит следующим образом:

$("input").blur(function(){ 
    $.cookie("asofdate", $(this).val()); 
    window.location.reload(); 
}); 
+0

Это не работает потому что нажатие ENTER не делает фокус уходящим. Нажатие на раскрывающееся меню календаря также не делает фокус уйти – satnam

-1

Попробуйте

$("input").keyup(function(e){ 
    if(e.which == 13){ 
     $.cookie("asofdate", $(this).val()); 
     window.location.reload(); 
    } 
}); 
+0

Я не думаю, что вы закончили читать мой пост – satnam

+0

В чем проблема? –

+0

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

Смежные вопросы