0

我在一个项目中使用 jQuery mobile,需要一个带有 textarea 的弹出窗口:

<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');

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

我尝试了这个hack,它对我不起作用。

当我在关闭弹出窗口之前模糊 textarea 时,textarea 将自动再次获得焦点(您可以使用“模糊”按钮在我的示例站点上进行测试)。

编辑:删除示例的链接。

4

2 回答 2

1

这对我有用:

$('#textArea').blur();
$('#popupDialog').attr("tabindex",-1).focus();
于 2013-02-19T21:59:10.567 回答
0

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

var hideKeyboard = function() {
    document.activeElement.blur();
    $("input").blur();
};
于 2014-11-12T03:03:19.030 回答