Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mendapatkan Kedudukan Kursor dalam Medan Input Teks?

Bagaimanakah Saya Boleh Mendapatkan Kedudukan Kursor dalam Medan Input Teks?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-04 19:00:16849semak imbas

How Can I Get the Cursor Position in a Text Input Field?

Menentukan Kedudukan Kursor dalam Medan Input Teks

Mendapatkan kedudukan kursor dalam medan input teks boleh meningkatkan pengalaman pengguna dan memudahkan tertentu kefungsian. Begini cara anda boleh mencapai ini:

Penyelesaian jQuery

Untuk pendekatan yang mudah, anda boleh menggunakan sifat selectionStart bagi elemen medan input. Sifat ini mengembalikan indeks aksara bagi kedudukan semasa karet dalam medan.

$("#myinput").on("input", function() {
  let caretPosition = $(this).prop("selectionStart");
});

Penyelesaian JavaScript Tersuai

Sebagai alternatif, jika pemalam jQuery tidak diingini, anda boleh melaksanakan fungsi JavaScript tersuai. Fungsi ini memanfaatkan sifat selectionStart atau selectionEnd, bergantung pada arah pemilihan.

function doGetCaretPosition(oField) {
  let iCaretPos = 0;

  if (oField.selectionStart || oField.selectionStart == '0')
    iCaretPos = oField.selectionDirection == 'backward' ? oField.selectionStart : oField.selectionEnd;

  return iCaretPos;
}

Fungsi ini boleh disepadukan dengan mudah ke dalam kod anda dengan memanggilnya dengan medan input yang sesuai sebagai hujah.

Pelaksanaan

Sebaik sahaja anda mempunyai kedudukan kursor, anda boleh menggunakannya untuk melaksanakan pelbagai tugas, seperti:

  • Sisipkan teks di lokasi yang ditentukan
  • Serlahkan kawasan tertentu
  • Lakukan pengesahan teks berdasarkan kedudukan karet

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Kedudukan Kursor dalam Medan Input Teks?. 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