2010-08-01 12 views
1

Je suis en train de construire un tableau en javascript qui contient une liste d'identifiants. Voici une version simplifiée de la fonction que j'ai ...Javascript: Comment garder les données de tableau persistant

function updateCost(id) { 
    var inputArray = []; 
    inputArray.push(id); 
} 

Et voici le code html ...

<input type="file" name="field1" id="field1" onchange="updateCost('1');" /> 
<input type="file" name="field2" id="field2" onchange="updateCost('2');" /> 
<input type="file" name="field3" id="field3" onchange="updateCost('3');" /> 
... 

Ce que je voudrais arriver, est à chaque fois que je sélectionne une fichier de mon ordinateur en utilisant l'un des champs d'entrée de fichier que j'ai, je voudrais que l'id de ce champ d'entrée soit stocké dans le tableau inputArray. Cependant, chaque fois que je sélectionne un fichier, il ajoute cet identifiant au tableau, mais il ne l'ajoute pas au tableau, donc tout le reste du tableau est supprimé, ne laissant qu'une seule entrée dans le tableau.

Y a-t-il un moyen de rendre les données de tableau persistantes afin qu'elles augmentent chaque fois que j'utilise l'un des champs d'entrée de fichier?

Merci!

Répondre

4
(function() { 


    var inputArray = []; 
    function updateCost(id) { 
    inputArray.push(id); 
    } 


})(); 

Définissez-le en dehors de la portée de la fonction. Vous n'avez pas vraiment besoin de la fonction anon qui entoure, c'est juste mon style personnel.

+0

fonctionne parfaitement, et si simple, merci! – lewisqic

+1

@lewisqic: pensez à accepter la réponse si c'est ce que vous recherchez. – zneak

+2

Mais si 'updateCost' est défini dans une fonction anonyme, il ne sera pas défini lors du déclenchement de l'événement change, au moins dans les navigateurs qui ne sont pas infectés. 'updateCost' doit être global. – MooGoo

0
function updateCost(id) { 
    if(typeof updateCost.inputArray=="undefined")updateCost.inputArray=[] 
    updateCost.inputArray.push(id); 
} 

Marque tableau est "statique"

Questions connexes