使用 javascript 和 HTML 在 IOS 上将“return”/“Go”键更改为“Next”
Posted
技术标签:
【中文标题】使用 javascript 和 HTML 在 IOS 上将“return”/“Go”键更改为“Next”【英文标题】:change "return"/"Go" key to "Next" on IOS using javascript and HTML 【发布时间】:2014-01-01 07:17:03 【问题描述】:我想要做的是将他的返回键更改为我尝试过的 html 表单的 iPad 上的下一个键
$(document).ready(function()
$("input").not( $(":button") ).keypress(function (evt)
if (evt.keyCode == 13)
iname = $(this).val();
if (iname !== 'Submit')
var fields = $(this).parents('form:eq(0),body').find('button, input, textarea, select');
console.log(fields);
var index = fields.index( this );
if ( index > -1 && ( index + 1 ) < fields.length )
var id = fields.eq( index + 1 ).attr("id")
alert("document");
document.getElementById(id).focus();
alert("without 0");
$("#"+id)[0].focus();
$("#"+id)[0].click();
alert("with 0");
$("#"+id)[0].focus();
return false;
);
);
但这在 iPad 上不起作用我读到苹果不会通过 jquery 的焦点或单击事件打开键盘,以避免在没有用户适当交互(点击触摸)的情况下不时弹出键盘。否则,这在浏览器中可以正常工作。
这也有Go按钮而不是“Next”我想要的是当用户点击Next键时,它应该关注我表单的下一个输入字段
我也试过
$(document).ready(function ()
var focused = $('input:first'); //this is just to have a starting point
$(document).keypress( function (e)
if (e.keyCode == 13) e.preventDefault();alert("keyPressed");
focused.next('input').trigger('touchstart'); //trigger touchstart
);
$('input').on('touchstart', function ()
$(this).focus();
focused = $(this);
);
);
但这对于自定义输入按钮非常有效,但不适用于 Return/Go 按钮,我特别希望 iPad 上的 Return/G 按钮具有此功能
【问题讨论】:
【参考方案1】:ios/Safari 仅在触摸事件处理程序中“接受”焦点。解决方法可能是,您可以触发触摸事件并将 .focus() 插入其中。像这样的。
用途:
document.getElementById(id).trigger('touchstart');
//or
$('#'+id).trigger('touchstart');
代替:
document.getElementById(id).focus();
Touchstart 事件-
$('input').on('touchstart', function ()
$(this).focus(); // inside this function the focus works
focused = $(this);
);
Demo
【讨论】:
谢谢,但我想在键盘的 Go 按钮上应用这个。您的代码非常适合输入类型按钮,但不适合 Go 按钮 其次,我还想将 Go 按钮的标签更改为 Next。 是的,即使在选项卡上,它也适用于 input type="button" 但不适用于输入键以上是关于使用 javascript 和 HTML 在 IOS 上将“return”/“Go”键更改为“Next”的主要内容,如果未能解决你的问题,请参考以下文章
我们可以在 Node JS 应用程序中使用带有 ejs(嵌入式 javascript)的 socket.io 而不是 html 页面吗?
node.js + express + socket.io 无法将 javascript 文件加载到 index.html