Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Memposisikan Kursor Secara Pengaturcaraan dalam Kotak Teks HTML?

Bagaimanakah Saya Boleh Memposisikan Kursor Secara Pengaturcaraan dalam Kotak Teks HTML?

DDD
DDDasal
2024-12-10 12:40:141124semak imbas

How Can I Programmatically Position the Cursor in an HTML Textbox?

Menempatkan Karet Papan Kekunci dalam Kotak Teks HTML

Untuk mengalihkan karet papan kekunci dalam kotak teks, kedudukan tertentu boleh disasarkan menggunakan JavaScript.

Generik Fungsi:

function setCaretPosition(elemId, caretPos) {
    var elem = document.getElementById(elemId);
    if (elem) {
        if (elem.createTextRange) {  // IE specific
            var range = elem.createTextRange();
            range.move('character', caretPos);
            range.select();
        } else if (elem.selectionStart) {
            elem.focus();
            elem.setSelectionRange(caretPos, caretPos);
        } else {
            elem.focus();  // Fallback for browsers not supporting setSelectionRange
        }
    }
}

Penggunaan:

  • elemId: ID kotak teks untuk disasarkan
  • caretPos: Kedudukan caret yang diingini (watak dari permulaan)

Contoh:

Untuk menetapkan karet sebelum aksara 20 dalam kotak teks dengan 50 aksara:

setCaretPosition('myTextbox', 20);

Keserasian:

  • Diuji pada IE6 , Firefox 2, Opera 8, Netscape 9, SeaMonkey dan Safari (kecuali Safari dalam kombinasi dengan onfocus)

Nota Tambahan:

Anda juga boleh memaksa karet untuk melompat ke penghujung semua kawasan teks pada fokus halaman menggunakan kod ini (dalam addLoadEvent fungsi):

for (var i = 0; i < textAreas.length; i++) {
    textAreas[i].onfocus = function() {
        setCaretPosition(this.id, this.value.length);
    }
}

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memposisikan Kursor Secara Pengaturcaraan dalam Kotak Teks HTML?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn