Rumah >hujung hadapan web >tutorial js >JQuery/HTML5 Input Fokus dan kedudukan kursor
Dokumen ini menyediakan coretan kod dan contoh yang menunjukkan cara menguruskan fokus dan kedudukan input kursor menggunakan jQuery dan HTML5. Maklum balas dan cadangan dialu -alukan.
fokus input jQuery
Gunakan fungsi untuk menetapkan fokus kepada elemen input: focus()
<code class="language-javascript">// Set focus on input $('input[name=firstName]').focus();</code>
HTML5 menawarkan keupayaan auto-fokus terbina dalam. Walaupun disokong secara meluas, perhatikan bahawa ia mungkin tidak berfungsi secara konsisten di semua pelayar (diuji bekerja di Chrome dan Firefox, tetapi tidak IE9 atau lebih tua).
<code class="language-html"><input type="text" autofocus></code>Lihat contoh ini di https://www.php.cn/link/8bd045c0275185605e58d7fec40ecae6 kedudukan kursor set JQuery
Fungsi jQuery ini menetapkan kedudukan kursor ke indeks aksara tertentu dalam medan input:
<code class="language-javascript">// Set cursor position $.fn.setCursorPosition = function(pos) { this.each(function(index, elem) { if (elem.setSelectionRange) { elem.setSelectionRange(pos, pos); } else if (elem.createTextRange) { var range = elem.createTextRange(); range.collapse(true); range.moveEnd('character', pos); range.moveStart('character', pos); range.select(); } }); return this; };</code>Penggunaan contoh:
menetapkan kedudukan kursor selepas watak pertama.
<code class="language-javascript">$('#username').setCursorPosition(1);</code>
Fungsi jQuery ini secara automatik memilih pelbagai teks tertentu (beberapa aksara) dalam medan input:
Penggunaan Contoh:
<code class="language-javascript">// Select text range $.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(); } }); };</code>Pilih 5 aksara pertama.
Lihat contoh ini di https://www.php.cn/link/c7410e5d6aa6b2f78d9267b7908c2
<code class="language-javascript">$('#username').selectRange(0, 5);</code>
Bahagian ini menangani soalan umum mengenai fokus input jQuery/HTML5 dan kedudukan kursor. Jawapan memberikan contoh kod ringkas untuk kejelasan. (Nota: Seksyen FAQ asal mempunyai beberapa ketidakkonsistenan pemformatan dan blok kod yang tidak diformat dengan betul sebagai kod. Versi ini membetulkan isu -isu tersebut.)
Q: Bagaimana saya boleh menetapkan kedudukan kursor pada akhir medan input menggunakan jQuery?
Q: Bagaimana saya boleh menggunakan jQuery untuk memberi tumpuan pada medan input apabila pautan diklik?
<code class="language-javascript">var input = $('#inputField'); var len = input.val().length; input.focus(); input[0].setSelectionRange(len, len);</code>
Q: Apakah perbezaan antara peristiwa
<code class="language-javascript">$('#linkID').click(function() { $('#inputField').focus(); });</code>dan
dalam jQuery? focus
focusin
dicetuskan apabila elemen menerima fokus dan tidak gelembung.
focus
focusin
Q: Bagaimana saya boleh mencetuskan peristiwa fokus secara manual dalam jQuery?
Q: Bagaimana saya dapat mengesan apabila medan input kehilangan fokus dalam jQuery?
<code class="language-javascript">$('#inputField').focus(); // or $('#inputField').trigger('focus');</code>
<code class="language-javascript">// Set focus on input $('input[name=firstName]').focus();</code>
Q: Bagaimana saya boleh mencegah medan input daripada kehilangan fokus dalam jQuery?
menggunakan preventDefault
dalam pengendali focusout
biasanya tidak disyorkan kerana ia boleh membawa kepada tingkah laku yang tidak dijangka. Pertimbangkan pendekatan alternatif untuk mencapai hasil yang anda inginkan.
Q: Bagaimana saya boleh menetapkan fokus pada medan input seterusnya apabila kekunci Enter ditekan dalam jQuery?
<code class="language-html"><input type="text" autofocus></code>
Q: Bagaimana saya boleh menetapkan kedudukan kursor pada indeks tertentu dalam medan input menggunakan jQuery?
<code class="language-javascript">// Set cursor position $.fn.setCursorPosition = function(pos) { this.each(function(index, elem) { if (elem.setSelectionRange) { elem.setSelectionRange(pos, pos); } else if (elem.createTextRange) { var range = elem.createTextRange(); range.collapse(true); range.moveEnd('character', pos); range.moveStart('character', pos); range.select(); } }); return this; };</code>
Q: Bagaimana saya boleh mendapatkan kedudukan kursor semasa dalam medan input menggunakan jQuery?
<code class="language-javascript">$('#username').setCursorPosition(1);</code>
Q: Bagaimana saya boleh memindahkan kursor ke permulaan medan input menggunakan jQuery?
<code class="language-javascript">// Select text range $.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(); } }); };</code>
Atas ialah kandungan terperinci JQuery/HTML5 Input Fokus dan kedudukan kursor. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!