come impostare lo stato attivo nell'indice richiesto sulla casella di testo per l'opera

StackOverflow https://stackoverflow.com/questions/1431802

  •  07-07-2019
  •  | 
  •  

Domanda

Ho una casella di testo in cui devo impostare focus / cursore sull'indice richiesto della casella di testo nel browser dell'opera.

È stato utile?

Soluzione 2

il tuo codice urla funziona bene, ma si sta scontrando in opera.

perché il seguente frammento di codice

if(elem.createTextRange) {

è anche vero per l'opera, ma createTextRange sarà supportato solo da IE.

Quindi ho modificato poche modifiche nel tuo codice

function SetCaretPosition(elemId, caretPos) {
    var elem = document.getElementById(elemId);

    if (elem != null) {
        if ($.browser.msie) {
            if (elem.createTextRange) {
                var range = elem.createTextRange();
                range.move('character', caretPos);
                range.select();
            }
        }
        else {
            if (elem.selectionStart) {
                elem.focus();
                elem.setSelectionRange(caretPos, caretPos);
            }
            else
                elem.focus();
        }
    }
}

Altri suggerimenti

Demo di lavoro

function SetCaretPosition(elemId, caretPos) {
    var elem = document.getElementById(elemId);

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

elemId: id dell'elemento

caretPos: posizione del cursore

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top