需要使用javascript识别iOS编辑键盘中的“完成”按钮单击

Posted

技术标签:

【中文标题】需要使用javascript识别iOS编辑键盘中的“完成”按钮单击【英文标题】:Need to identify the 'Done' button click in iOS edit keyboard using javascript 【发布时间】:2013-11-20 09:45:21 【问题描述】:

从图片中,是否可以使用 javascript/jQuery 识别 ios 的“完成”按钮单击事件? iOS 键盘点击事件可以使用文本区域的 'onkeypress' 函数来识别。

【问题讨论】:

【参考方案1】:

如果该字段是表单的一部分,完成将触发表单的“onsubmit”事件。

一种方法是设置超时,该超时发生在每个表单元素的 onblur(已调度)上,并在每个元素的 onfocus 上清除。

jQuery 中的简短示例作为解释:

var blurOccurred;

$("input")
.on("blur", function(evt) 
  blurOccurred = window.setTimeout(function() 
    alert('Done button clicked');
  , 10);
)
.on("focus", function(evt) 
  window.clearTimeout(blurOccurred);
);

通过这样做,检测到单击“完成”会延迟 10 毫秒。如果它只是导航到上一个/下一个表单字段,则不会执行整个超时。

我希望这能让你开始。

编辑: 在 iOS7 上有 event.relatedTarget 属性,当单击“完成”时该属性为空 - 否则它是设置焦点的输入元素。这也可以用于检测是否单击了完成(或关闭了键盘)。

【讨论】:

以上是关于需要使用javascript识别iOS编辑键盘中的“完成”按钮单击的主要内容,如果未能解决你的问题,请参考以下文章

Javascript 移动键盘事件

为啥在js取消设置只读标签后iOS不显示键盘输入?

iOS开发之手势识别

如何使用JavaScript捕获iOS上的隐藏键盘事件

iOS 开发之 - 关闭键盘 退出键盘 的5种方式

关闭键盘但也允许 iOS Swift 中的其他操作?