您如何以编程方式选择 iOS 设备(例如运行移动版 Safari 的 iPhone、iPad)上的输入字段的文本?
通常.select()
在<input ... />
元素上调用函数就足够了,但这在那些设备上不起作用。光标只是留在现有条目的末尾而不进行选择。
您如何以编程方式选择 iOS 设备(例如运行移动版 Safari 的 iPhone、iPad)上的输入字段的文本?
通常.select()
在<input ... />
元素上调用函数就足够了,但这在那些设备上不起作用。光标只是留在现有条目的末尾而不进行选择。
input.setSelectionRange(0, 9999);
此线程中没有任何内容对我有用,以下是适用于我的 iPad 的内容:
// t is the input field
setTimeout(function() {
t.setSelectionRange(0, 9999);
}, 1);
看到这个小提琴:(在输入框中输入一些文本,然后单击“选择文本”)
它在我的 iPod(第 5 代 iOS6.0.1)的输入框中选择文本,打开键盘并显示剪切/复制/建议...菜单
使用普通的javascript。没有用 jQuery 尝试这个
document.getElementById("p1").selectionStart = 0
document.getElementById("p1").selectionEnd = 999
请注意,数字 999 只是一个示例。您应该将这些数字设置为要选择的字符数。
更新:
对于最后两个,您可以通过在input
元素上触发点击事件来进行试验
更新: (07-10-2013)
更新: (14-11-2013)
.selectionStart
和.selectionEnd
确实有效。更新: (15-01-2015)
很难证明是否定的,但我的研究表明这是 Mobile Safari 中的一个错误。
请注意,focus() 或多或少都有效——尽管它可能需要多次点击才能成功,如果您尝试响应用户点击相关字段,则没有必要,因为点击本身会提供该字段重点。不幸的是,选择()是简单地在移动Safari浏览器不起作用。
您最好的选择可能是向Apple提交错误报告。
抱歉,在我之前的帖子中,我没有注意到 Javascript 暗示您需要 Javascript 的答案。
为了使用javascript在UIWebView 中获得您想要的东西,我设法将两个重要的信息拼凑在一起以使其正常工作。不确定移动浏览器。
element.setSelectionRange(0,9999);
做我们想做的事
mouseUp 事件正在撤消选择
因此(使用原型):
input.observe('焦点', function() { this.setSelectionRange(0, 9999); }); input.observe('mouseup', function(event) { 事件。停止(); });
诀窍。
马特