Domanda

Non riesco ad accedere all'oggetto di contesto usando un contesto di loop impostato: var context = [id1, id2, id3];

Questa funzione di richiamata funziona:

function OnChangeSucceeded(result, context, methodName) {
    document.getElementById(context[0]).disabled = result;
    document.getElementById(context[1]).disabled = result;
    document.getElementById(context[2]).disabled = result;
}

Questa funzione di richiamata ha esito negativo:

function OnChangeSucceeded(result, context, methodName) {
        for(var indx = 0; indx < context.length; indx++) {
           document.getElementById(context[indx]).disabled = result;
        }

    }
È stato utile?

Soluzione 3

Questo è il puntatore a firebug tvanfosson.

Ho rifatto la funzione e ora funziona come:

function OnChangeSucceeded(result, context, methodName) {
    for (controlId in context) {
        document.getElementById(context[controlId]).disabled = result;
    }
}

Non sono sicuro che fosse perché il contesto era originale creato come:

context = [id1, id2, id3];

che ora ho sostituito con:

context = new Array(id1, id2, id3);

Altri suggerimenti

Sarebbe utile vedere il codice chiamante in modo da poter vedere come viene stabilito il tuo contesto. Immagino che tu l'abbia impostato come un'associazione e non come un array in modo tale che quando vai a usarlo nel callback, non ci sono proprietà di lunghezza (o è 0).

Quando lo configuri dovrebbe apparire come:

var context = new Array();
context[0] = 'elem0';
context[1] = 'elem1';
context[2] = 'elem2';

non

var context = {0: 'elem0', 1: 'elem1', 2: 'elem2'};

Se questo non è il problema, prova a controllarlo in FireFox / FireBug impostando un punto di interruzione nella funzione onChangeSucceeded ed esaminando l'oggetto di contesto effettivo per vedere quali proprietà ha.

È a causa del tuo errore di battitura?

for(var index = 0; indx < context.length; indx++) {

dovrebbe essere

for(var indx = 0; indx < context.length; indx++) {
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top