Bagaimana Anda mengatur posisi kursor dalam bidang teks menggunakan jQuery? Saya punya bidang teks dengan konten, dan saya ingin kursor pengguna diposisikan pada offset tertentu ketika mereka fokus pada bidang tersebut. Kode akan terlihat seperti ini:
$('#input').focus(function() {
$(this).setCursorPosition(4);
});
Seperti apa penerapan fungsi setCursorPosition itu? Jika Anda memiliki bidang teks dengan konten abcdefg, panggilan ini akan mengakibatkan kursor diposisikan sebagai berikut: abcd ** | ** efg.
Java memiliki fungsi serupa, setCaretPosition. Apakah ada metode serupa untuk javascript?
Pembaruan: Saya memodifikasi kode CMS agar berfungsi dengan jQuery sebagai berikut:
new function($) {
$.fn.setCursorPosition = function(pos) {
if (this.setSelectionRange) {
this.setSelectionRange(pos, pos);
} else if (this.createTextRange) {
var range = this.createTextRange();
range.collapse(true);
if(pos < 0) {
pos = $(this).val().length + pos;
}
range.moveEnd('character', pos);
range.moveStart('character', pos);
range.select();
}
}
}(jQuery);
$(this).get(0).setSelectionRange)
? Anda tahu itu persis samathis.setSelectionRange
, hanya lebih lambat dan lebih sulit untuk dibaca, bukan? jQuery benar-benar tidak melakukan apa pun untuk Anda di sini.