移动版Safari中,当焦点在输入框上时,jQuery的select()方法无法正常工作。

5

这个问题是在移动版Safari上的iPad IOS6上出现的。

我希望当用户点击输入框时,输入框中的文本会自动被选中。

我有一个在常规浏览器(例如Chrome)中有效的解决方案:

        $(document).ready(function() {
        //Select text on focus for input
        $("input:text").focus(focustext);
    });
    function focustext() {
        var input = $(this);
        setTimeout(function() { 
            input.select();
        },100);
    }

但是在Safari移动版上无法正常工作。
我阅读了几个关于这个问题的帖子,例如: Webkit [Chrome / Safari] JavaScript选择焦点错误的解决方法(在字段之间使用选项卡) 使用jQuery在iPhone iPad浏览器中选中文本不起作用 我已经在一个简单的虚拟实验中测试了建议的解决方案,但我无法让它们在iPad上运行。 http://kraner.se/customers/test.html 我希望能够得到一个可以解决这个问题的有效解决方案。 有人可以帮忙吗?
1个回答

3
我将JavaScript更改为以下内容(更改了文本选择方式和获取输入变量的方式):
        $(document).ready(function() {
        //Select text on focus for input
        $("input:text").focus(focustext);
    });
    function focustext() {
        var input = this;
        setTimeout(function () {
            input.selectionStart = 0;
            input.selectionEnd = input.val().length;
        },100);
    }

现在它按预期工作。但是,类型为“数字”的输入似乎不起作用。

我已在iOS6和iOS7上进行了测试,并且在Windows 7上的最新Chrome和IE中也可以正常工作。但是,兼容性模式下的IE不起作用。


1
一个小问题,应该是 input.value.length 而不是 input.val().length - user3586413

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接