Mottie 虚拟键盘和选择器

Posted

技术标签:

【中文标题】Mottie 虚拟键盘和选择器【英文标题】:Mottie virtual keyboard and Chosen Selector 【发布时间】:2015-05-31 15:27:03 【问题描述】:

我正在尝试让以下两个优秀的 jQuery 插件一起工作。

Mottie 的虚拟键盘插件:(github.com/Mottie/Keyboard) 一个名为 Chosen 的选择器在用户键入时过滤选项: (harvesthq.github.io/chosen/)这是我的意思的一个例子(当我使用我的物理键盘时):chosen auto-filtering while typing with physical keyboard

不幸的是,当我使用 mottie 的键盘时,不会发生这种过滤。这是发生的情况的屏幕截图: chosen auto-filtering while typing with mottie fails

我的 mottie javascript 是:

$('input, textarea').keyboard(layout: 'qwerty', usePreview: false, autoAccept: true).addTyping();

知道为什么吗?大概这两个开发者可以回答这个问题(@mottie)

PS:由于发布图片需要 10 分,所以我将它们作为链接。

【问题讨论】:

【参考方案1】:

您需要使用 select2 open 事件来初始化键盘 (demo)

var keys = 
    bksp: 8,
    tab: 9,
    enter: 13,
    space: 32,
    delete: 46
;

$('select')
    .select2(
        placeholder: "Select a state"
    )
    .on("select2:open", function (e) 
        $('.select2-container--open .select2-search__field').keyboard(
            // Used by jQuery UI position utility
            position: 
                // null = attach to input/textarea;
                // use $(sel) to attach elsewhere
                of: $(document),
                my: 'center bottom',
                at: 'center bottom',
                // used when "usePreview" is false
                at2: 'center bottom'
            ,
            reposition: true,
            usePreview: false,
            change: function(e, keyboard, el) 
                var key = (keyboard.last.key || '').toLowerCase();
                // trigger a keydown for "special" keys
                e.type = keys[key] ? 'keydown' : 'input';
                e.which = keys[key] || key.charCodeAt(0);
                keyboard.$el.trigger(e);
            
        )
        // activate the typing extension
        .addTyping(
            showTyping: true,
            delay: 50
        );
    );

更新:添加了特殊键交互以允许在虚拟键盘上按 Enter 键

包含此 css 以删除蓝色轮廓:

.ui-keyboard-input-current 
    -moz-box-shadow: none;
    -webkit-box-shadow: none;
    box-shadow: none;

【讨论】:

感谢您的回答。我会试试看。

以上是关于Mottie 虚拟键盘和选择器的主要内容,如果未能解决你的问题,请参考以下文章

Mottie 的虚拟键盘关闭验证为真

带有引导主题的 Mottie 虚拟键盘

如何更改 mottie 虚拟键盘中自定义键的显示名称

当用户单击javascript mottie虚拟键盘键之间的小空间时,有没有办法防止焦点从元素模糊?

github上老外做的jQuery虚拟键盘

马来语和印尼语的虚拟键盘字符