Javascript 'ce' comme paramètre

Je suis en train de copier la valeur de "DE" dans les champs "À" champs. Ma première tentative a été ceci:

function updateToField(toField,fromField)
{
    toField.value = fromField.value}
}

function verifyFromToFields()
{
var inputs = getElementsByTagName("input");
for (var j = 0; j < inputs.length; j++)
{
    if (inputs[j].name.indexOf('FROM') != -1 && if (inputs[j+1].name.indexOf('TO') != -1)
        {
            var fromField = inputs[j];
            var toField   = inputs[j+1];
            fromField.onchange = function(){updateToField(toField,fromField)};
        }
}

Le site a plusieurs DE paires, et cela ne semble pas fonctionner pour la dernière paire dans les "entrées" de la matrice.

Puis j'ai essayé ceci:

function updateToField(toField,fromField)
{
    toField.value = fromField.value}
}

function verifyFromToFields()
{
var inputs = getElementsByTagName("input");
for (var j = 0; j < inputs.length; j++)
{
    if (inputs[j].name.indexOf('FROM') != -1 && if (inputs[j+1].name.indexOf('TO') != -1)
        {
            var fromField = inputs[j];
            var toField   = inputs[j+1];
            fromField.onchange = function(){updateToField(toField,this)};
        }
 }

Avec ce, lorsque l'un quelconque DU champ de la page est modifié, il est copié dans le dernier champ dans la page. Je pense que c'est l'une de ces questions que j'ai lu sur des paramètres comme la valeur de référence ou, mais je ne peux pas le comprendre.
Aussi c'est une version TRÈS simplifiée du code, j'ai fait remplir la liste entrées avec un getElementsByClass fonction et doit rechercher à travers childnodes.
Quelqu'un a une idée sur ce qui se passe?

  • De moins en moins à voir avec cela et de passer-by-reference: Plus à faire avec des fermetures.
  • que de bons conseils, mais, par pure chance, fermetures (et pas cela) sont exactement ce qui est le vissage de lui maintenant!
  • c'est ce que je disais. 🙂
  • J'ai complètement mal compris ce que tu veux dire: je pensais que vous étiez ce qui suggère qu'il devrait utiliser des fermetures au lieu de this, qui, je pense, est de bon conseil, bien qu'ici, il aurait fait qu'empirer les choses au lieu de s'améliorer.
  • Si il y avait une façon saine de joindre la relation entre les champs ($(fromfield).data("tofield", tofield)) sans l'aide de jQuery, à l'aide de this deviendra simple.
InformationsquelleAutor varrtto | 2013-01-23