使用 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 页面吗?

Javascript的io操作

node.js + express + socket.io 无法将 javascript 文件加载到 index.html

多人 HTML5、Node.js、Socket.IO

如何使用 Socket.io 和 emscripten 使用 javascript 库?

特殊点掩码输入 HTML-JavaScript