[英]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
这是一个实时示例,它还有香草版本以防万一:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.