2009-12-08 21 views

Respuesta

20

IE utiliza un enfoque diferente para establecer la posición del cursor que Firefox, Opera y Chrome. Es mejor hacer una función auxiliar, que lo hará por ti. Yo uso este para sus propias necesidades.

function setCursor(node,pos){ 

    node = (typeof node == "string" || node instanceof String) ? document.getElementById(node) : node; 

    if(!node){ 
     return false; 
    }else if(node.createTextRange){ 
     var textRange = node.createTextRange(); 
     textRange.collapse(true); 
     textRange.moveEnd(pos); 
     textRange.moveStart(pos); 
     textRange.select(); 
     return true; 
    }else if(node.setSelectionRange){ 
     node.setSelectionRange(pos,pos); 
     return true; 
    } 

    return false; 
} 

Lo último, es llamarlo desde su controlador onfocus.

Goodluck

+0

Hai What is node is textboxId –

+0

node es la instancia de DOM, pero si necesita trabajar con id's, puede agregar una "línea de código" adicional que buscará la instancia DOM por usted. – nemisj

+0

Como DSharma sugirió (bajó la edición, debería haber sido un comentario): para hacer que funcione para todos los navegadores, agregue tiempo de espera a la llamada de función si desea colocar el cursor al comienzo del texto de entrada. Por ejemplo: 'window.setTimeout (function() {setCursor (node, 0);}, 1);' – thomaux

0

$("#textbox").selectionStart=14 fuerza trabaja para Firefox, Opera, Chrome, pero no está seguro de IE

PS: no debe haber longitud de 14 caracteres> ya está en cuadro de texto para que funcione correctamente.

+0

Yo uso una máscara editar el cuadro de texto ... –

+0

Marcar el cuadro de texto estará vacío ¿hay alguna solución –

+0

Sí, es para el cuadro de entrada y el área de texto, si el tuyo es el cuadro de texto enriquecido, no estoy seguro con eso. Lo siento por eso. – YOU

Cuestiones relacionadas