我们正在 jQuery Mobile 1.0.1 和 Phonegap 1.4.1 中开发移动 Web 应用程序,并且在 Galaxy s2 上遇到了键盘问题。
我们有一个滑出的菜单,其中包含搜索输入:
<input type="search" placeholder="Search..." name="search" id="menu_search" data-role="none" />
当我们点击输入以使其获得焦点时,键盘会打开,但不允许我们输入任何内容。我想这里的一个线索是,它为我们提供了一个常规文本键盘,而不是搜索键盘(它有一个放大镜)作为回车键)
如果我们在菜单打开时聚焦输入:$("#menu_search").focus()
- 当菜单显示时,搜索键盘打开,我们可以进行搜索,但是一旦我们点击输入,键盘就会变成普通键盘,我们无法输入任何内容。
另一个线索是,在键盘中输入时,自动预测会起作用,但是当点击正确的选项时,只会在输入中添加一个空格,而不会添加任何其他字符。
我们在搜索输入上尝试了许多其他属性,但均无济于事:
<input type="search" placeholder="Search..." name="search" id="menu_search" value="" data-role="none" autocomplete="off" autocorrect="off" autocapitalization="off" role="textbox" aria-autocomplete="list" aria-haspopup="true" style="-webkit-appearance:searchfield;" class="ui-autocomplete-input" />
这一切在运行 2.2 的 HTC Desire 和运行 CM7 (Android 2.3.7) 的 Desire 上运行良好
我们甚至尝试将输入更改为文本区域,但这几乎做了同样的事情:(
我也尝试过:
$("#menu_search").live('focus',function(event){
event.preventDefault();
});
看看这是否会阻止它更换键盘,但也没有运气。
然而,我们在应用程序的其他地方确实有另一个搜索输入,它工作正常,唯一的区别是其他搜索位于“正确的”页面中:data-role="page"
并且菜单位于所有其他页面之外,并且其本身最初设置为隐藏。
请帮忙,我哭了血atm!