jQuery mobile: Hide virtual keyboard after closing popup
我正在项目中使用jQuery mobile,并且需要一个带有文本区域的弹出窗口:
1 2 3 4 | <button id="dialogCloseButton" data-theme="a" data-icon="delete" data-iconpos="notext" class="ui-btn-left">Close</button> <textarea id="textArea" data-theme="b" style="resize: none; max-width: 100%; max-height: 150px; width: 100%; height: 150px; padding-bottom: 5px;"></textarea> <button data-theme="a">Ok</button> |
我正在像这样打开弹出窗口:
1 | $('#popupDialog').popup('open'); |
当我现在在文本区域中输入文本并使用按钮关闭弹出窗口时,虚拟键盘将不会隐藏在运行iOS 6.1的iPad上。
我尝试了这个hack,但对我来说不起作用。
当我在关闭弹出窗口之前模糊文本区域时,该文本区域将自动再次获得焦点(您可以使用" Blur "-按钮在示例站点上对其进行测试)。
编辑:删除了指向示例的链接。
这对我有用:
1 2 | $('#textArea').blur(); $('#popupDialog').attr("tabindex",-1).focus(); |
这很不言自明。第二行将使所有输入字段失去焦点,并且它依赖于jQuery。我发现在单个焦点文本字段上调用blur()并不总是有效。这些线路中的任何一条都应该独立工作,但是它们两者不能一起停止!
1 2 3 4 | var hideKeyboard = function() { document.activeElement.blur(); $("input").blur(); }; |