[javascript] ضع علامة الإقحام لوحة المفاتيح في textbox html



2 Answers

الرابط في الجواب مكسور ، يجب أن يعمل هذا (جميع الاعتمادات تذهب إلى blog.vishalon.net ):

http://snipplr.com/view/5144/getset-cursor-in-html-textarea/

في حالة ضياع الرمز مرة أخرى ، إليك الدالتان الرئيسيتان:

function doGetCaretPosition(ctrl)
{
 var CaretPos = 0;

 if (ctrl.selectionStart || ctrl.selectionStart == 0)
 {// Standard.
  CaretPos = ctrl.selectionStart;
 }
 else if (document.selection)
 {// Legacy IE
  ctrl.focus ();
  var Sel = document.selection.createRange ();
  Sel.moveStart ('character', -ctrl.value.length);
  CaretPos = Sel.text.length;
 }

 return (CaretPos);
}


function setCaretPosition(ctrl,pos)
{
 if (ctrl.setSelectionRange)
 {
  ctrl.focus();
  ctrl.setSelectionRange(pos,pos);
 }
 else if (ctrl.createTextRange)
 {
  var range = ctrl.createTextRange();
  range.collapse(true);
  range.moveEnd('character', pos);
  range.moveStart('character', pos);
  range.select();
 }
}
Question

هل يعرف أي شخص كيفية تحريك علامة الإقحام لوحة المفاتيح في مربع نص إلى موضع معين؟

على سبيل المثال ، إذا كان مربع النص (على سبيل المثال ، عنصر الإدخال ، وليس منطقة النص) يحتوي على 50 حرفًا وأريد وضع علامة الإقحام قبل الحرف 20 ، فكيف أذهب نحو ذلك؟

هذا في تمايز من هذا السؤال: jQuery Set Cursor Position في Text Area ، والذي يتطلب jQuery.




function SetCaretEnd(tID) {
    tID += "";
    if (!tID.startsWith("#")) { tID = "#" + tID; }
    $(tID).focus();
    var t = $(tID).val();
    if (t.length == 0) { return; }
    $(tID).val("");
    $(tID).val(t);
    $(tID).scrollTop($(tID)[0].scrollHeight); }



لقد قمت بتعديل إجابة kd7 قليلاً لأن elem.selectionStart سيقيم إلى false عند تحديد startStart 0.

function setCaretPosition(elem, caretPos) {
    var range;

    if (elem.createTextRange) {
        range = elem.createTextRange();
        range.move('character', caretPos);
        range.select();
    } else {
        elem.focus();
        if (elem.selectionStart !== undefined) {
            elem.setSelectionRange(caretPos, caretPos);
        }
    }
}





Related