使用Jquery / Javascript(Mobiscroll)在移动设备上隐藏虚拟键盘

时间:2014-07-23 10:31:02

标签: javascript jquery keyboard virtual mobiscroll

对此有很多疑问。但他们都谈论将重点放在一个领域。这是我的问题:

我有一个输入类型字段。当用户点击它时,它将打开我的自定义mobiscroll功能。在某些情况下,如Android 2. *或Windows平板电脑,它也显示虚拟键盘!如何编写虚拟键盘永远不会出现的情况!

谁能帮助我:)。

3 个答案:

答案 0 :(得分:7)

要移除键盘,您需要失去对活动元素的关注。没有其他解决方案

因此,在删除焦点后显示弹出窗口。

示例:

function clickInput() {
    openPopUp();
    document.activeElement.blur(); // lose focus on the active element and hide keyboard
}

<强>更新

我不知道“mobiscroll”。但要隐藏键盘,您需要关注活动元素。

document.activeElement && document.activeElement.blur();
// This code remove the keyboard constantly.

答案 1 :(得分:2)

模糊是我问题的关键! Mobiscroll有一个名为onBeforeShow的方法,在mobiscroll出现之前调用它。在这个方法中,我在输入类型上使用了blur()我使用了mobiscroll!我的代码如下:

var options = {
        preset: this.preset,
        theme: 'wp light',
        mode: 'scroller',
        display: 'bottom',
        timeWheels: "HHii",
        dateFormat: "dd-mm-yy",
        timeFormat: "HH:ii",
        lang: 'nl', // TODO: Deduce from application language.
        onBeforeShow: (html, inst) => { this.findControl().blur();}
    };
    this.findControl().mobiscroll(options);

答案 2 :(得分:1)

Blur是Android上的关键,但禁用父级是WinJS的关键。

var control = jQuery("#someControl");
// Disabling the parent prevents the keyboard to popup for WinJS.
control.parent().prop('disabled', true);
var options = {
    preset: this.preset,
    mode: 'scroller',
    display: 'bottom',
    timeWheels: "HHii",
    dateFormat: "dd-mm-yy",
    timeFormat: "HH:ii",
    lang: 'nl',
    onBeforeShow: function (inst) {
        // Blur the control because Android will otherwise show the keyboard.
        control.blur();
    }
};
control.mobiscroll(options);