Запретить аддон timepicker от открытия календаря - PullRequest
2 голосов
/ 06 января 2012

Я задал следующее в старом вопросе :

Я использую плагин timepicker для jquery. После того, как пользователи выбрали дату + время и нажали кнопку «Готово», которая в основном просто закрывает диалоговое окно, я хочу, чтобы текстовое поле, в котором установлена ​​дата и время, возвращало фокус (текущее поведение плагина - размытие фокуса). Это потому, что на этой странице у меня есть набор текстовых полей, и их порядок вкладок устанавливается последовательно. Мне нужно текстовое поле даты и времени, чтобы вернуть фокус, чтобы продолжить порядок табуляции. в противном случае порядок табуляции будет перезапущен с первого ввода текста, что неудобно для пользователя.

Я получил рабочий ответ ниже

$('#MyDatepicker').datetimepicker({
   onClose: function(dateText, inst) {
     $('#MyDatepicker').focus();
  }
});

но это мой новый вызов : теперь текстовое поле имеет фокус назад, календарь открывается снова. как мне это предотвратить?

Ответы [ 2 ]

1 голос
/ 09 января 2012

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

http://jsfiddle.net/QwQwN/

$(function() {
    $(".date").datepicker({ });
});

$('.date').change( function() {
    $(this).nextAll('input:first').focus();
});

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

1 голос
/ 08 января 2012

ты пробовал это?

$('#MyDatepicker').datetimepicker({
   onClose: function(dateText, inst) {
     $(this).focus();
     $(this).unbind();  //this works in IE
  }
});
...