如何在Phonegap应用程序的jQueryMobile页面中隐藏键盘?
我在iPhone模拟器中隐藏键盘时遇到问题。我的HTML代码:如何在Phonegap应用程序的jQueryMobile页面中隐藏键盘?,jquery,jquery-mobile,cordova,Jquery,Jquery Mobile,Cordova,我在iPhone模拟器中隐藏键盘时遇到问题。我的HTML代码: <form id="my_form"> <input type="search" id="searchBar" /> </form> 一切都按照我的需要进行:我可以获得表单值并执行一些Ajax。但当函数返回false时,iPhone模拟器中的虚拟键盘仍然可见。如何隐藏键盘?还有别的方法吗?当用户在iPhone上搜索并按下“Go”键时,我需要使用Ajax将数据传递到服务器。搜索结果应显示在
<form id="my_form">
<input type="search" id="searchBar" />
</form>
一切都按照我的需要进行:我可以获得表单值并执行一些Ajax。但当函数返回false时,iPhone模拟器中的虚拟键盘仍然可见。如何隐藏键盘?还有别的方法吗?当用户在iPhone上搜索并按下“Go”键时,我需要使用Ajax将数据传递到服务器。搜索结果应显示在同一页面中(已完成)。用户可以再次在同一页面中搜索
请帮帮我
谢谢
--regeint尝试将另一个可聚焦元素(例如:a
)添加到页面中(将其高度设置为0,使其不可见但可聚焦),并在返回false之前将焦点移到该元素。在jQuery中,如果返回false代码>,它将停止默认浏览器行为,在本例中,默认浏览器行为既是提交表单,也是关闭键盘。以下方面应起作用:
<form id="my_form">
<input type="search" id="searchBar" />
<div style="height:0;width:0;">
<input id="focusable" type="checkbox" />
</div>
</form>
谢谢你,谢谢你帮助我。
事实上,我做了下面的事情,它成功了。
它不会影响此元素上方或下方的css
$('.clr').after('<input type="checkbox" id="focusable" style="height:0; margin-left:-200px; clear: both;" />');
$('#focusable').focus();
$('.clr')。在('')之后;
$(“#可聚焦”).focus();
再次感谢。:) 不用将焦点切换到另一个元素,只需像这样模糊输入即可:
$('#searchBar').blur();
它将隐藏虚拟键盘。我使用了regeint解决方案,但做了一点修改,它不起作用,因为我告诉phonegap允许在Cordova.plist中显示键盘而无需用户交互。我将KeyboardDisplayRequiresAction
设置为NO
function hideTheKeyBoard() {
$($.mobile.pageContainer).after('<input type="checkbox" id="focusable" style="height:0;margin-left:-200px;" />');
$('#focusable').focus();// maybe .blur() would work too.
$('#focusable').remove();
}
函数隐藏键盘(){
$($.mobile.pageContainer).after('');
$('#focusable').focus();//也许.blur()也可以。
$(“#可聚焦”).remove();
}
来自
这是不言自明的。第二行将取消所有输入字段的焦点,它依赖于jQuery。我发现在单一聚焦文本字段上调用blur()并不总是有效。这两条线路中的任何一条都应该独立工作,但不能同时停止这两条线路
如果您不介意失去焦点,那么.blur()
方法可能是最有效的方法。但是,如果,例如,您需要它,以便在typeahead中打开选项列表,该怎么办
下面你可以看到我找到的解决这个问题的方法
$('keepMeFocused')。单击(函数(){
$(this.attr('type','text');
$('hideKeyboard').removeAttr('disabled');
$('#msg').show();
});
$(“#隐藏板”)。单击(函数(){
$('keepMeFocused').attr('type','button').focus();
$('hideKeyboard').attr('disabled',true);
});代码>
#保持聚焦{
框大小:边框框;
宽度:200px;
高度:24px;
背景:无;
边框:实心1px#ccc;
填充:0.4px;
文本对齐:左对齐;
}
#隐藏板{
高度:24px;
背景:#666;
边框:实心1px#666;
边界半径:2px;
颜色:#fff;
垂直对齐:顶部;
}
#隐藏板[禁用]{
背景:ddd;
边框颜色:#ddd;
}
#保持焦点:不(:焦点)~#msg{
显示:无;
}
隐藏键盘
在输入具有焦点时让我保持可见
尝试执行techfoobar所做的操作,但使用复选框而不是他建议的选择(选择可能会弹出一个空列表)。我更新了我的答案以反映这一点。
$('#searchBar').blur();
function hideTheKeyBoard() {
$($.mobile.pageContainer).after('<input type="checkbox" id="focusable" style="height:0;margin-left:-200px;" />');
$('#focusable').focus();// maybe .blur() would work too.
$('#focusable').remove();
}
var hideKeyboard = function() {
document.activeElement.blur();
$("input").blur();
};