iPad Safari – 使键盘消失

在iPad的Safari浏览器,当我从焦点从文本框更改为下拉菜单,键盘仍然保持…有什么办法(也许用Javascript)我可以隐藏键盘时,用户从文本框模糊?

间接地说,我正在寻找一个相当的(但在移动Safari)

[tempTextField resignFirstResponder]; 

我在http://uihacker.blogspot.com/2011/10/javascript-hide-ios-soft-keyboard.htmlfind了解决scheme。; 本质上,只要做到这一点(它为我工作):

 var hideKeyboard = function() { document.activeElement.blur(); $("input").blur(); }; 

我有iOS 5.0.1的iPad在成功login我的网站后没有隐藏键盘。 我通过简单的执行javascript命令来解决

 document.activeElement.blur(); 

成功login后,现在键盘正确隐藏:-)

我知道这是一个稍微老一点的问题,但是我今天发现了答案,答案是非常简单的……我花了更多的时间,而不是我想承认这个问题;)

要防止显示键盘:

 <input type="text" name="someInput" /> 

因为当你想要做一些像使用jQuery UIdateselect器…

添加像这样的只读属性:

 <input type="text" name="someInput" readonly="readonly" /> 

如果您试图关注JSclosures的人,您可以始终忽略该属性并将其添加到您的代码中:

 $('[name=someInput]').attr('readonly','readonly'); 

希望这可以帮助。

这里是一个jsFiddle展示的概念: http : //jsfiddle.net/3QLBz/5/

 $("#txt").on("focus", function(){ $(this).blur(); }); 

适用于iPad上的jQuery UIdateselect器

我在另一个文本字段上调用.focus(),键盘消失。 我正在使用Sencha触摸框架,我所指的textfield是一个Ext.Text对象。

我知道这是违反直觉的,但似乎为我工作

 Sample.views.MessageBar.getComponent(0).blur(); document.activeElement.blur(); window.focus(); Sample.views.sendMessageBar.getComponent(0).setDisabled(true); 

你可以使用上面的代码。 第一和第四行是针对该文本字段的。 它适用于iphone,但它不适用于Android。 我尝试了Iphone 3gs和三星Galaxy S2。

没有jQuery的版本:

 function hideKeyboard () { document.activeElement.blur(); Array.prototype.forEach.call(document.querySelectorAll('input, textarea'), function(it) { it.blur(); }); } 

根据Apple Safari的文档,当你select一个下拉列表(select列表)时,iOS会closures键盘并显示本地iOSselect控件。 确保您使用SELECT元素作为下拉列表

并尝试添加到您的网页的元标记

 <meta name="apple-mobile-web-app-capable" content="yes" />