繁体   English   中英

setSelectionRange 未按预期工作

[英]setSelectionRange is not working as expected

我有以下问题,我收到以下错误

未捕获的类型错误:$(...).setSelectionRange 不是函数

除了在一种情况下,该代码几乎 99% 的时间都可以工作,我无法弄清楚原因。

 $(Id).setSelectionRange($(Id).val().length, $(Id).val().length);
 $(Id).focus();       

setSelectionRange是输入元素的特定方法,而不是 jQuery 实例。 为此,您必须使用 vanilla JS 选择器。

此外,您发布的代码对范围的开始和结束使用相同的值:

document.getElementById("yourInputId").setSelectionRange($(Id).val().length, $(Id).val().length)

该代码基本上将选择从字符串中的最后一个字符开始,并将选择结束设置为最后一个字符,因此实际上没有选择任何内容。

最后,您必须先聚焦输入,然后才能设置选择范围。

const myInput = $(Id);
const myInputValue = myInput.val();

myInput.focus();
myInput[0].setSelectionRange(0, myInputValue.length);

检查文档和 MDN:

https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange

这是一个实时示例,它还有香草版本以防万一:

https://codepen.io/rhernando/pen/XWJodgp?editors=1010

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM