У меня есть задача разработать некоторые учебники для новых инструментов, добавленных в систему ERP, и после некоторых тестов с некоторыми плагинами jQuery я решил использовать EnjoyHint - я использую вилку, потому что она лучшеобновлены и исправлены некоторые ошибки из исходного кода.
С простыми полями формы, кнопками и элементами HTML все круто настраивать, но у меня возникают проблемы при взаимодействии enjoyhint с плагином jQuery TokenInput , который я использую для динамического поиска в базе данныхи вернуть параметры в виде раскрывающегося списка.
Поскольку плагин tokeninput действует как двухэтапная вставка данных (сначала вы вводите нужные данные, а затем выбираете вариант, который лучше соответствует вашим потребностям в раскрывающемся меню).как список), я понимаю, что для пользователя лучше на первом шаге ввести данные в поле ввода текста / tokeninput, а после AJAX-запроса к базе данных (обратный вызов в само поле tokeninput) показать еще один шаг, чтобы сосредоточитьсяна выбор необходимого варианта.После того, как выбор сделан, будет запущен новый AJAX-запрос, который отобразит DIV и вернет пользовательские данные.
На первом шаге (ввод данных для поиска в базе данных) он работает следующим образом:(tour_init - это имя экземпляра EnjoyHint):
{
onBeforeStart: function() {
$('#token-input-input_name').focus();
$('#token-input-input_name').keydown(function(){
if($(this).val().length > 9){
setTimeout(function(){
tour_init.trigger('next');
}, 2000);
}
});
},
selector: '#token-input-input_name',
event_type: 'custom',
description: 'Type your ID number code'
}
Но второй (когда пользователю нужно выбрать опцию в раскрывающемся списке), даже если существует задержка по времени для ожидания выбора пользователя, еслипользователь использует стрелки на клавиатуре для навигации по опциям, время ожидания заканчивается неудачей, и тур переходит по шагам, или даже сам закрывает тур (я также позиционирую выделение прямоугольника с нижним отрицательным значением, чтобы показать опции раскрывающегося меню пользователю):
{
selector: '#token-input-input_name',
description: 'Select your option and confirm with ENTER key',
event: 'key',
keyCode: 13,
bottom: -100,
right: 2,
left: -1
}
Есть ли какой-нибудь способ предотвратить пошаговое продвижение тура, если пользователь нажимает любую клавишу клавиатуры, кроме Enter (keyCode 13)?
Большое спасибо, ребята!