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 的虚拟键盘关闭验证为真的主要内容,如果未能解决你的问题,请参考以下文章