使用Javascript在iphone的虚拟键盘中单击"完成"按钮

Dan*_*Dan 35 javascript dom-events ios

我想知道是否有办法使用JavaScript捕获iPhone的虚拟键盘的完成按钮事件?

基本上,我只是希望能够在用户点击完成后调用JS函数.

Jas*_*don 7

我无法跟踪被点击的"完成"按钮.它没有注册任何clicks或keypresses.我不得不addEventListenerS表示change,focusoutblur使用jquery(因为该项目已被使用jquery).


Kru*_*nal 6

你需要做一些这样的事情:

$('someElem').focusout(function(e) {
    alert("Done key Pressed!!!!")
});
Run Code Online (Sandbox Code Playgroud)

它对我有用,希望它也能帮助你。

  • 这对我有用,在反应中使用它。document.addEventListener('focusout', this.onFocusOut); (2认同)

小智 6

在搜索并尝试此解决方案后, 基本上是说:

 document.addEventListener('focusout', e => {});
Run Code Online (Sandbox Code Playgroud)

在 iPhone 6s 上测试


Ale*_*lds -11

完成键与回车键相同。这样你就可以监听按键事件。我正在使用 jQuery 编写此内容,并在咖啡脚本中使用它,因此我尝试在脑海中将其转换回 js。抱歉,如果有错误。

$('someElem').bind("keypress", function(e){
   // enter key code is 13
   if(e.which === 13){
     console.log("user pressed done");
    } 
})
Run Code Online (Sandbox Code Playgroud)

  • 完成按钮与输入按钮不同。“Go”按钮相当于“Enter”/键码 13。 (14认同)
  • 我已经检查了你的方法,它对我来说不适用于文本区域。 (5认同)
  • @AlexReynolds 更新你的答案不会有什么坏处,因为它已经过时了。目前已选择它作为正确答案。由于 SO 努力成为规范,因此指出这一点是很有价值的。 (4认同)
  • 我在移动 safari 上尝试过你的 jsfiddle,当你按“完成”时它不会触发警报。我也尝试自己实现它并改进你的jsfiddle。我认为您只是将顶部的蓝色“完成”与底部的“开始”或“返回”混淆了。 (2认同)