现在,当输入失去焦点时,我会使用一些jQuery隐藏iPad键盘。
jQuery(function($) {
$(document).on('touchend', function(e) {
document.activeElement.blur();
});
});
然而,在结账过程中,当用户点击输入到输入时,键盘会消失,每次输入更改时都会重新出现。是否有任何方法可以将上面的jquery代码更改为只有在触摸的文档上的位置没有输入类型的文本时才会模糊活动元素的位置?
答案 0 :(得分:0)
好吧,之前我没有尝试使用iPad,所以我不确定它是否可行,但您可以检查document.activeElement
的类型以确定它是text还是textarea字段。如果不是,请执行blur()
。代码如下:
jQuery(function($) {
$(document).on('touchend', function(e) {
setTimeout(function() {
var currentElement = document.activeElement;
if ($(currentElement).not("textarea, :text").length > 0) {
currentElement.blur();
}
}, 100);
});
});
需要setTimeout
以确保焦点已转移到下一个元素,然后再检查当前元素是什么(立即执行,将<body>
作为activeElement
返回})。
这种一般方法(即,确定当前activeElement
的类型)在桌面浏览器环境中有效,并且 应该 在iPad上运行,但是,就像我之前说过的那样,我没有机会在那里进行测试,所以这更像是一个“可能的解决方案”,而不是一个真正的“答案”,直到你试一试,如果它适合你。 :d