iPhone Mobile Safari:强制键盘打开

Posted

技术标签:

【中文标题】iPhone Mobile Safari:强制键盘打开【英文标题】:iPhone Mobile Safari: Force keyboard open 【发布时间】:2010-07-12 09:33:11 【问题描述】:

这是一个 html / CSS / JS (jQuery) iPad 应用程序。我有一个按钮,可以向下滑动输入表单。我想让用户专注于输入,然后启动键盘。

这是我正在使用的,但不起作用:

$('#myFormField').focus();

这确实会聚焦输入,但无法启动键盘。是不是不可能(出于安全原因或其他原因)?

有没有办法强制或模拟用户点击输入(或与此相关的任何东西)?

【问题讨论】:

你检查了吗? ***.com/questions/6738846/… 【参考方案1】:

也许这些链接可以帮助你:

http://4pcbr.com/topic/how_to_open_keyboard_on_ipad_with_js (不再工作)

http://jgestures.codeplex.com

【讨论】:

使用 jgesture 自动打开键盘但这不起作用jQuery('#myTextBox').trigger("tapone"); 第一个链接返回 404。【参考方案2】:

试试这个

在 Safari iPhone 7 和 iPhone 6 Plus、android 4.4 上测试

当我点击按钮时,它成功打开了 ios 虚拟键盘。

条件

1) 制作一个按钮来触发按键事件 => $('.btn_abc')

2) 制作一个文本输入标签,并将 ID 设置为此元素 => $('#search_input')

$( document ).ready(function() 

  var focusTextField = function()
    console.log("focusElement");
  ;

  var onKeypressHandler = function()
    console.log("* * * keypress event handler")
    $('#search_input').blur().focus();
  ;

  var onClickHandler = function() 
    $('.btn_abc').trigger('keypress');
  ;

  $('#search_input').bind('focus', focusTextField);
  $('.btn_abc').bind('click', onClickHandler);
  $('.btn_abc').bind('keypress', onKeypressHandler);

);

【讨论】:

这在 iPhone6 Plus、safari、ios 10.3.1 上对我有用。 优秀。在 iOS 11.3 上为我工作(在 iPhone 6P 和 iPad Air 上,如果有任何后果的话。)【参考方案3】:

将该按钮变成输入字段,然后立即将焦点切换到主输入字段。他们的键盘将打开并保持打开状态。下面是一个使用您所要求的按钮的示例,在用户单击的按钮上放置一个透明的输入字段。在 iPhone 4 (iOS 6/7) 和 HTC Windows 手机上测试。

您希望用户关注的输入:

<input id="main" />

用户按下的按钮(使用 css 覆盖输入字段):

<a>Button</a><input onfocus="FocusMain()" />

立即切换焦点:

function FocusMain()

    $("#main").focus();

【讨论】:

演示会有很长的路要走。 对我来说,只使用 $('objId').focus();成功了。我将它用于一个明文框值按钮,该按钮最初清除了文本框,现在键盘保持打开状态,键盘也会令人讨厌地消失。太棒了,谢谢?【参考方案4】:

这应该做你想做的:

$("#element").focus().click();

【讨论】:

不起作用!我也尝试过,使用 setTimeout 延迟,并触发 ontouchstart 和 ontouchend 来模拟输入的触摸,但没有进展。 这不起作用...根据设计,手机不允许在焦点上显示键盘,人们需要直接单击输入或在 onClick() 事件中使用 focus()另一个元素 值得注意的是,这个 DID 在发布时有效,适用于当时最新的 Safari 版本。【参考方案5】:

试试:

$('#element').blur().focus();

或者如果这不起作用:

$('#element').focus().blur().focus();

blur() 消除焦点,而 focus() 将其带回来。出于某种原因,与 focus() 偶尔单独工作相比,它每次都有效。

【讨论】:

同上 - 这不起作用...根据设计,手机不允许在焦点上显示键盘,人们需要直接点击输入或使用 onClick 中的 focus() () 另一个元素上的事件 抱歉,我刚刚意识到 iOS 5 版本的 iPhone 和 iPad 可以使用此功能,但 Android 肯定会对此有所了解

以上是关于iPhone Mobile Safari:强制键盘打开的主要内容,如果未能解决你的问题,请参考以下文章

在 jQuery Mobile / Mobile Safari 中按下提交后不要隐藏键盘

您可以从 Mobile Safari 访问 iPhone 相机吗? [关闭]

为啥在 iOS Safari Mobile (iPhone / iPad) 中没有触发模糊事件?

CSS 背景位置在 Mobile Safari (iPhone/iPad) 中不起作用

iOS 7 从 Mobile Safari 访问 iPhone 相机?

是否可以在 Mobile Safari 中使用 Javascript 在输入或文本区域上调用键盘?