Dokumen ini menyediakan coretan kod untuk menguruskan pemilihan teks dalam medan input. Chrome moden dan Firefox menggunakan .setSelectionRange()
, tetapi Firefox memerlukan elemen untuk memberi tumpuan terlebih dahulu.
Mendapatkan kedudukan kursor:
jQuery.fn.getCursorPosition = function(){ if(this.length == 0) return -1; return $(this).getSelectionStart(); };
Mendapatkan pemilihan Mula:
jQuery.fn.getSelectionStart = function(){ if(this.length == 0) return -1; input = this[0]; var pos = input.value.length; if (input.createTextRange) { var r = document.selection.createRange().duplicate(); r.moveEnd('character', input.value.length); if (r.text == '') pos = input.value.length; pos = input.value.lastIndexOf(r.text); } else if(typeof(input.selectionStart)!="undefined") pos = input.selectionStart; return pos; };
Menetapkan kedudukan kursor:
jQuery.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; };
menetapkan kedudukan kursor (alternatif):
function setCursorPos(node,pos){ var node = (typeof node == "string" || node instanceof String) ? document.getElementById(node) : node; node.focus(); // Crucial for Firefox if(!node) return false; else if(node.createTextRange){ var textRange = node.createTextRange(); textRange.collapse(true); textRange.moveStart('character', pos); textRange.moveEnd('character', 0); textRange.select(); return true; }else if(node.setSelectionRange){ node.setSelectionRange(pos,pos); return true; } return false; }
Soalan -soalan yang sering ditanya:
Seksyen FAQ memberikan penjelasan yang jelas tentang, setSelectionRange
, selectionStart
, keserasian pelayar, dan pengendalian parameter. Jawapannya ringkas dan tepat. Tiada perubahan diperlukan di sini. selectionEnd
Atas ialah kandungan terperinci Coretan Kod Pemilihan Teks Input. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!