gpt4 book ai didi

javascript - 使用 jQuery 在输入文本中设置光标

转载 作者:行者123 更新时间:2023-11-30 17:12:08 24 4
gpt4 key购买 nike

使用这个主题: jQuery Set Cursor Position in Text Area

我写了这段代码,但它不起作用:

<input id="myTextInput" type="text" value="some text2">
<input type="button" value="set mouse" id="btn" />

和:

$(document).ready(function () {
$('#btn').on('click', function () {
var inp = $('#myTextInput');
var pos = 3;
inp.focus();
if (inp.setSelectionRange) {
inp.setSelectionRange(pos, pos);
} else if (inp.createTextRange) {
var range = inp.createTextRange();
range.collapse(true);
if (pos < 0) {
pos = $(this).val().length + pos;
}
range.moveEnd('character', pos);
range.moveStart('character', pos);
range.select();
}
});
});

DEMO

我的错误在哪里?谢谢

最佳答案

您的错误是您选择了 jQuery 对象而不是 DOM 元素:将 var inp = $('#myTextInput'); 替换为 var inp = $('#myTextInput') [0];.

JSFIDDLE


但是,我建议使用来自 this answer 的插件,因为代码看起来会更干净:

$.fn.selectRange = function(start, end) {
return this.each(function() {
if (this.setSelectionRange) {
this.focus();
this.setSelectionRange(start, end);
} else if (this.createTextRange) {
var range = this.createTextRange();
range.collapse(true);
range.moveEnd('character', end);
range.moveStart('character', start);
range.select();
}
});
};


$(document).ready(function() {
$('#btn').on('click', function() {
var pos = 7;
$('#myTextInput').focus().selectRange(pos, pos);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="myTextInput" type="text" value="some text2">
<input type="button" value="set mouse" id="btn" />

关于javascript - 使用 jQuery 在输入文本中设置光标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26773658/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com