jueves, 9 de febrero de 2012

Posicionar cursor dentro de INPUTS con Javascript

Hola a todos:
Hoy les comparto algo que apenas descubrí en elementos html.
Poner el foco en una determinada posición de un campo de texto... Es decir
Si tengo un campo de texto    y si se escribe un texto en este elemento, se puede mover el foco a una posición de letras...
Realizando lo siguiente:

//Funcion para recuperar la posición

function  obtenerPosicionCursor(idElemento) {
  var campo = document.getElementById(idElemento);
       if (document.selection) {// Soporte IE
        campo.focus();                                        // Poner foco en elemento
        var oSel = document.selection.createRange();        // Para obtener posición del cursor
        oSel.moveStart('character', -elemento.value.length);    //Mover cursor a posicion 0
        campo.selectionEnd = oSel.text.length;                    /
        oSel.setEndPoint('EndToStart', document.selection.createRange() );
        elemento.selectionStart = oSel.text.length;
      }
      return { start: elemento.selectionStart, end: elemento.selectionEnd };
    }

//Función para establecer la posición

function establerCursorPosicion(pos, idElemento){
  var elemento = document.getElementById(idElemento);
        if(typeof document.selection != 'undefined' && document.selection){        //método IE
            var tex=elemento.value;
            elemento.value='';
            elemento.focus();
            var str = document.selection.createRange();
            elemento.value=tex;
            str.move("character", pos);
            str.moveEnd("character", 0);
            str.select();
        }
        else if(typeof elemento.selectionStart != 'undefined'){                    //método estándar
            elemento.setSelectionRange(pos,pos);                       
        }
    }

No hay comentarios: