2013-02-19 85 views
0

我使用jQuery移动的一个项目后,需要在其与textarea的一个弹出:jQuery Mobile的:隐藏虚拟键盘关闭弹出

<div data-role="popup" id="popupDialog" data-overlay-theme="none" data-theme="a" style="width: 350px; max-width:350px;" class="ui-corner-all" data-dismissible="false"> 
    <button id="dialogCloseButton" data-theme="a" data-icon="delete" data-iconpos="notext" class="ui-btn-left">Close</button> 
    <div data-role="content" class="ui-corner-bottom ui-content" style="text-align: center; margin: auto;"> 
     <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> 
    </div> 
</div> 

我打开弹出这样的:

$('#popupDialog').popup('open'); 

现在当我进入textarea的文本,并使用按钮关闭弹出窗口中,虚拟键盘不会隐藏我的iPad运行iOS 6.1。

我想这hack,这并没有为我工作。

当我模糊关闭弹出窗口前的文本区域,文本区域会自动再次获得焦点(您可以使用“模糊” - 按钮在我的例子网站上测试这一点)。

编辑:删除链接的例子。

+0

“我试过这个黑客,这对我没用。” - 您尝试过哪些黑客?因为那里有几个。 – MarcinWolny 2013-02-19 10:36:04

+0

所有的黑客都会涉及blur()和/或添加一个可聚焦元素并将焦点赋予它。这对我不起作用。 – sbaltes 2013-02-19 11:13:14

+0

不是全部。您尝试删除元素? – MarcinWolny 2013-02-19 11:16:44

回答

1

这个工作对我来说:

$('#textArea').blur(); 
$('#popupDialog').attr("tabindex",-1).focus(); 
0

这是不言自明。第二行将取消所有输入字段,并依赖于jQuery。我发现在单个焦点文本框上调用blur()并不总是有效。这两条线中的任何一条都应该独立工作,但是它们都不能停止!

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