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

Posted

技术标签:

【中文标题】Mottie 的虚拟键盘关闭验证为真【英文标题】:Mottie's Virtual Keyboard close on validate true 【发布时间】:2016-05-29 23:24:26 【问题描述】:

我正在使用带有触摸屏的 jQuery 屏幕键盘插件。 在我的输入中,当我达到 4 个字符时,我想关闭键盘。 不幸的是,键盘只知道我何时达到了 4 个字符,并且可以将最大输入限制为 4 个字符。 用户仍然必须手动关闭键盘。 有关闭键盘的密码吗? 这是我的实际脚本:

$('#password').keyboard(
        layout: 'custom',
        customLayout: 
            'default' : [
                'C D E F',
                '8 9 A B',
                '4 5 6 7',
                '0 1 2 3',
                'bksp a c'
            ]
        ,
        usePreview : false,
        autoAccept: true,
        maxLength : 4,
        // Prevent keys not in the displayed keyboard from being typed in
        restrictInput : true,
        // include lower case characters (added v1.25.7)
        restrictInclude : 'a b c d e f',
        // don't use combos or A+E could become a ligature
        useCombos : false,
        // activate the "validate" callback function
        acceptValid : true,
        validate : function(keyboard, value, isClosing)
            // only make valid if input is 4 characters in length
            if(value.length === 4)
                return true; // I want to close the keyboard here

            return false;
        
    );

【问题讨论】:

【参考方案1】:

最初,我建议在change 回调中添加setTimeout,但后来我注意到由于键盘正在关闭并且“keyup”事件仍在触发而弹出javascript错误。

无论如何,我修复了这些错误并添加了一个新的autoAcceptOnValid option - 按如下方式使用它 (demo):

$(function() 

  $('#password').keyboard(
    layout: 'custom',
    customLayout: 
      'default': [
        'C D E F',
        '8 9 A B',
        '4 5 6 7',
        '0 1 2 3',
        'bksp a c'
      ]
    ,
    usePreview: false,
    autoAccept: true,
    maxLength: 4,
    // Prevent keys not in the displayed keyboard from being typed in
    restrictInput: true,
    // include lower case characters (added v1.25.7)
    restrictInclude: 'a b c d e f',
    // don't use combos or A+E could become a ligature
    useCombos: false,
    // activate the "validate" callback function
    acceptValid: true,
    // option added in v1.25.29
    autoAcceptOnValid: true,
    validate: function(keyboard, value, isClosing) 
      return value.length === 4;
    
  );

);

【讨论】:

如果我想在键盘关闭后启动一个javascript函数怎么办? 绑定到hidden event。

以上是关于Mottie 的虚拟键盘关闭验证为真的主要内容,如果未能解决你的问题,请参考以下文章

Mottie 虚拟键盘和选择器

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

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

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

github上老外做的jQuery虚拟键盘

在mac上使用jquery虚拟键盘,特殊字符在safari中打印为~n而不是ñ