JQuery:在 iPhone 上捕获 Enter + 完成/返回

标签 jquery iphone keypress

我有一个带有搜索字段的页面,可以通过输入搜索词然后按 Enter 键来工作。这在桌面浏览器上运行良好,但捕获“Enter”按钮按下的代码在 iPhone(可能还有其他移动浏览器)上不起作用。

HTML 是一个简单的输入字段(不在 FORM 元素内):

<div class="col-xs-12 col-sm-3 action-row padding pull-right xs-margin-up">
    <span class="k-textbox k-button k-space-left col-xs-12 search-box">
        <i class="fa-icon-search"></i>
        <input id="search" placeholder="Search" />
    </span>
</div>

然后我在 document.ready 中绑定(bind)按键:

$(this).keypress(function(event) {
    if ($('#search').is(":focus") && event.which == 13) {   
        search = $('#search').val();    

        generateView();
    }
});

/*$('#search').bind('keypress', function(e) {
    if (e.which == 13) {    
        search = $('#search').val();    

        generateView();
    }
});*/

您会注意到两个不同的版本 - 第一个版本是唯一适合我的版本,无论使用什么浏览器。我尝试了基于其他一些 Stack Overflow 线程的第二个,但它甚至无法在 Firefox 上运行,更不用说 iPhone 了。

我创建了这个 fiddle ,它在 iPhone 上没有执行任何操作:http://jsfiddle.net/tb653201/

最佳答案

解决您遇到的问题的一种方法是将输入包装在表单标记中,添加隐藏的提交按钮,然后使用 jQuery 的“提交”事件来触发它们。移动设备认识到它是一个表单,并以与常规打字不同的方式处理“输入”按键。

$("#myform").on("submit", function(event){
  event.preventDefault();
  // Your custom search functions here
});
#myform input[type='submit'] { display: none; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<div class="col-xs-12 col-sm-3 action-row padding pull-right xs-margin-up">
  <span class="k-textbox k-button k-space-left col-xs-12 search-box">
    <i class="fa-icon-search"></i>
    <form id="myform" action="#">
      <input id="search" placeholder="Search" />
      <input type="submit" value="">
    </form>
  </span>
</div>

有关更多信息,请参阅此:https://api.jquery.com/submit/

关于JQuery:在 iPhone 上捕获 Enter + 完成/返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31348768/

相关文章:

c# - 在按键或按键事件 C# 上从 DataGridView 的当前列获取值

javascript - 获取 'event.target.id' 作为字符串

javascript - 如何在单击按钮时更改 onclick 函数值

javascript - jQuery 验证中的正则表达式 - jQuery 中的单引号问题

python-3.x - Pygame 等待用户按键

按键上下文的 JavaScript 检测(表单历史选择与表单提交)

javascript - JQuery 中的行计数

iphone - iPhone中的dvr监控系统开发

iphone - 将 xib 从一个项目复制到另一个项目

iphone - opengl 1.1 在启动时搞砸了(随机)