我有一个使用jQuery的Web应用程序用TAB替换RETURN键,这样当我用户按下返回时,表单不会被提交,而是光标移动到下一个文本字段。
这适用于所有浏览器,但iPad上仅有1/2。在iPad上,下一个字段突出显示,但键盘是隐藏的。如何保持键盘可见或以某种方式强制它?
这是我的代码(感谢http://thinksimply.com/blog/jquery-enter-tab):
function checkForEnter (event) {
if (event.keyCode == 13) {
currentBoxNumber = textboxes.index(this);
if (textboxes[currentBoxNumber + 1] != null) {
nextBox = textboxes[currentBoxNumber + 1]
nextBox.focus();
nextBox.select();
event.preventDefault();
return false;
}
}
}
Drupal.behaviors.formFields = function(context) {
$('input[type="text"]').focus(function() { $(this).removeClass("idleField").addClass("focusField"); });
$('input[type="text"]').blur(function() { $(this).removeClass("focusField").addClass("idleField"); });
// replaces the enter/return key function with tab
textboxes = $("input.form-text");
if ($.browser.mozilla) {
$(textboxes).keypress (checkForEnter);
} else {
$(textboxes).keydown (checkForEnter);
}
};
答案 0 :(得分:2)
我认为,如果没有用户触摸文字输入元素并触发click
,mouseup
或mousedown
,就无法显示键盘。
这似乎是by design:
根据设计,Mobile Safari中的一些focus()事件将被忽略。很多网站都会不必要地聚焦()并且提起键盘是缓慢/干扰的。