jquery-tokeninput和Enjoyhint插件之间的交互

时间:2019-04-05 19:09:29

标签: jquery jquery-tokeninput enjoyhint

我的任务是为添加到ERP系统中的新工具开发一些教程,在对一些jQuery插件进行了一些测试之后,我决定使用EnjoyHint-我使用的是fork,因为它可以更好地进行更新和更正了原始代码中的一些错误。

使用简单的表单字段,按钮和HTML元素,配置起来都很酷,但是我很难与jQuery TokenInput插件进行享乐互动,我使用该插件动态搜索数据库并以下拉列表的形式返回选项

因为tokeninput插件充当两步插入数据(首先输入要查找的数据,然后在类似下拉列表中选择更能满足您的需求的选项),所以我认为这对用户首先在输入文本/令牌输入字段中键入数据,然后在对数据库的AJAX请求(对令牌输入字段本身的回调)之后,显示另一步骤,以专注于所需选项的选择。选择完成后,将触发一个新的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'
}

但是第二个(当用户需要在下拉菜单中选择选项时),即使等待用户的选择也有超时延迟,如果用户使用键盘箭头浏览选项,则超时将失败并且游览跳一步,甚至自行结束巡视(我还将rect选择的底部负值定位,以向用户显示下拉选项):

{        
    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键(键代码13),是否有某种方法可以阻止巡视?

非常感谢,伙计们!

0 个答案:

没有答案