在输入之间保持 iPad 键盘向上

Posted

技术标签:

【中文标题】在输入之间保持 iPad 键盘向上【英文标题】:Keeping an iPad keyboard up between inputs 【发布时间】:2014-04-23 15:54:38 【问题描述】:

现在我正在使用一些 jQuery 来在输入失去焦点时隐藏 iPad 键盘。

    jQuery(function($) 
       $(document).on('touchend', function(e) 
          document.activeElement.blur();
       );
    );

但是,在结帐等过程中,当用户从输入中单击以输入时,键盘会消失,而每次输入更改时都会重新出现。如果文档上被触摸的位置没有输入类型的文本,是否有任何方法可以将上述 jquery 代码更改为仅模糊活动元素的位置?

【问题讨论】:

【参考方案1】:

好吧,我之前没有在 iPad 上尝试过这个,所以我不确定它是否会起作用,但你可以检查document.activeElement 的类型以确定它是文本字段还是文本区域字段。如果不是,请执行您的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

【讨论】:

遗憾的是,这样做会消除它在 iPad 上的输入模糊中隐藏键盘。不知道为什么,我责怪史蒂夫乔布斯。为这个东西开发是一场噩梦。但是感谢您的尝试! =P 拍得好。 . .从理论上讲,我认为这会起作用(基于我对您当前代码行为方式的理解)。哦,好吧,我很想知道这个问题是如何解决的。 . .祝你好运!

以上是关于在输入之间保持 iPad 键盘向上的主要内容,如果未能解决你的问题,请参考以下文章

当键盘覆盖输入字段但在它们之间留出一些空间时向上移动视图

移动 Safari 滚动页面键盘关闭

当键盘出现在 iOS8 的 iPad 上时,向上移动模态呈现的 UIViewController

iPhone:滚动网页视图时需要保持键盘向上吗?

如何在下拉“选项”之间向下或向上键盘?

在 SwiftUI 中制作聊天应用程序:如何让 ScrollView 在键盘出现时保持原位?