焦点/单击时是不是可以选择iphone设备上的所有输入文本?

Posted

技术标签:

【中文标题】焦点/单击时是不是可以选择iphone设备上的所有输入文本?【英文标题】:Is it possible to select all input text on iphone device when focus / click?焦点/单击时是否可以选择iphone设备上的所有输入文本? 【发布时间】:2012-05-14 05:00:02 【问题描述】:

焦点/点击时是否可以选择iphone设备上的所有输入文本?

通常用于浏览器环境:

$('input').bind("click focus", function() 
$(this).select();
);

这适用于桌面浏览器,但对于 iphone 和可能的其他移动设备似乎无响应。

【问题讨论】:

您是否尝试将touchstartmspointerdown 添加到事件列表中?如果这不起作用,它可能会被移动操作系统阻止,例如控制视频对象的音频级别。 感谢您的建议。我会试一试的! Programmatically selecting text in an input field on ios devices (mobile Safari) 的可能重复项 【参考方案1】:

基本上你必须重新排列事件焦点,然后单击,然后触摸开始

$('#myID').on('focus click touchstart', function(e)
$(this).get(0).setSelectionRange(0,9999);
//$(this).css("color", "blue"); FUBAR
e.preventDefault();
);

【讨论】:

【参考方案2】:

设置一个(小)超时最适合我: iOS键盘似乎是在委托或其他东西中调用的,因为它不断失去我的焦点事件才能选择东西。由于同样的原因,select() 不起作用。

我是这样解决的:

function focusMe(vitem) 
    window.setTimeout(function()  
      vitem.setSelectionRange(0, 9999);
    , 10);


<input onfocus="focusMe(this)" />

【讨论】:

【参考方案3】:
$('input[type="text"]').on('focus',function()
    $(this).get(0).selectionStart=0;
    $(this).get(0).selectionEnd=999;
)

我最初找到了这个信息here,还有其他人尝试过的事情已经达到了结果。

【讨论】:

$(this).get(0)this 完全相同。 确实如此。我是多么的多余。【参考方案4】:

我会使用这样的东西:

$('input').live("click", function() 
    $('input').each(function()
        $(this).select();
    );
);
$('input').live("focus", function() 
    $('input').each(function()
        $(this).select();
    );
);

【讨论】:

以上是关于焦点/单击时是不是可以选择iphone设备上的所有输入文本?的主要内容,如果未能解决你的问题,请参考以下文章

禁用 jQuery UI 日期选择器的焦点设置

选择焦点上的文本

尝试在焦点/单击时选择 TextBox 中的所有文本

使 eternicode 日期选择器在点击时打开,而不是焦点

禁用jQuery UI datepicker的焦点设置

单击触摸设备 (iPad/iPhone) 上的任意位置以隐藏由 .hover() 切换的下拉菜单