2010-08-01 4 views
1

ID 목록이 포함 된 자바 스크립트로 배열을 작성하려고합니다. 여기서,Javascript : 영구 배열 데이터를 유지하는 방법

<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');" /> 
... 

나는 일이 싶은 무엇 ... 나는를 선택할 때마다되어 내가 가지고있는 기능의 단순화 된 버전 ...

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

이며, 여기에 HTML 코드는 파일 중 하나를 사용하여 내 컴퓨터에서 파일을 입력 필드의 ID를 inputArray 배열에 저장하려면 싶습니다. 그러나 파일을 선택할 때마다 배열에 id를 추가하지만 배열에 추가하지 않으므로 배열의 다른 모든 항목이 삭제되어 배열에 하나의 항목 만 남게됩니다.

파일 입력 필드 중 하나를 사용할 때마다 확장 될 수 있도록 배열 데이터를 영구화하는 방법이 있습니까?

감사합니다.

답변

4
(function() { 


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


})(); 

기능 범위 밖에 정의하십시오. 당신은 주변에있는 anon 함수를 필요로하지 않습니다. 그것은 제 개인적인 스타일 일뿐입니다.

+0

완벽하게 작동, 그래서 간단한 "정적"입니다, 감사합니다! – lewisqic

+1

@lewisqic : 답변을 수락하는 것을 고려해보십시오. – zneak

+2

그러나'updateCost'가 익명 함수 내에서 정의되면 적어도 변경되지 않은 브라우저에서 변경 이벤트가 발생하면 정의되지 않습니다. 'updateCost'는 전역 적이어야합니다. – MooGoo

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

만들기 배열

관련 문제