2009-12-08 9 views

risposta

20

IE utilizza un approccio diverso per l'impostazione della posizione del cursore rispetto a Firefox, Opera e Chrome. È meglio creare una funzione di aiuto, che lo farà per te. Io uso questo per i propri bisogni.

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; 
} 

L'ultima cosa è chiamarlo dal gestore onfocus.

Goodluck

+0

Hai Qual è il nodo è textboxId il nodo –

+0

è l'istanza DOM, ma se hai bisogno di lavorare con l'id, puoi aggiungere extra "codeline" che recupera l'istanza DOM per te. – nemisj

+0

Come suggerito da DSharma (il rollback della modifica avrebbe dovuto essere un commento): Per farlo funzionare per tutti i browser aggiungere un timeout alla chiamata della funzione se si desidera posizionare il cursore all'inizio del testo di input. Ad esempio: 'window.setTimeout (function() {setCursor (node, 0);}, 1);' – thomaux

0

$("#textbox").selectionStart=14 forza lavora per Firefox, Opera, Chrome, ma non è sicuro per IE

PS: ci dovrebbe essere la lunghezza di 14 caratteri> già nel testo per funzionare correttamente.

+0

Io uso una casella di testo di modifica maschera ... –

+0

Segna la casella di testo sarà vuota c'è qualche soluzione –

+0

Sì, è per la casella di input e textarea, Se la tua è Rich Text Box, non sono sicuro con esso allora. mi dispiace per quello. – YOU

Problemi correlati