2010-08-20 3 views
1

나는 미국 지역 목록을 체크 박스로 설정했습니다. 사용자가 양식을 제출하면 관련 상태의 배열이 필요합니다. 이 배열은 SQL 테이블의 다른 배열과 비교하는 데 사용됩니다.사용자 입력을 기반으로 동적으로 배열을 구성합니다. - Javascript/jQuery

jQuery 또는 javascript를 사용하면이 문제를 해결하는 가장 좋은 방법은 무엇입니까?

나는 내가 믿는 일반적인 생각이있어 : 사전에

 //populate region to state arrays here 

     $("input[name='region']").each(function() { 
      if ($(this).is(':checked')) { 

      // ADD TO SUPER ARRAY OF ALL REGIONS 
      // (this is where I need help) 

      } 
     }); 

감사합니다!

추신. 나는 각 배열을 식별하기 위해 입력 값 var regionValue = $(this).attr('value')을 사용해 보았지만 모든 함수가 정적 클래스에 있기 때문에 동적으로 명명 된 배열에 문제가있다.

답변

2

GenericTypeTea의 코멘트를 통합하는 새로운 정보를 반영 편집 :에 대해 어떻게 지역의 이름으로 설정 각 체크 박스의 ID를 가정

을 :

var regionStates = {}; 
regionStates['northeast'] = ['AB', 'CD', 'EF']; 
regionStates['mountains'] = ['GH', 'IJ', 'KL']; 
// etc... 

var selectedStates = []; 
$("input[name='region']:checked").each(function() { 
    var region = regionStates[this.id]; 
    for (var i = 0; i < region.length; ++i) { 
     selectedStates[selectedStates.length] = region[i]; 
    } 
}); 

이 사용, selectedStates가 포함 된 모든 선택된 모든 지역의 상태.

실제 미국의 주 약어를 모르는 것에 대해 사과드립니다.

+0

+1 매우 깔끔한 해결책. 추가하고자하는 것은 selector를'$ ("input [name = 'Region'] : checked")'로 변경하는 것뿐입니다. – GenericTypeTea

+0

죄송합니다 - 전적으로 자신을 밝히지 않았을 수 있습니다. 각 영역 체크 박스는 상태 배열과 연관되어 있습니다. 이 솔루션이 다음 오픈 어레이 슬롯에 개별 상태를 추가한다는 것을 알고 있습니다. 그래서 예를 들면 : 북동, 산, 태평양이 체크됩니다. 배열을 각 상태로 채 웁니다. superArray는 어떻게 모든 지역 배열의 조합이됩니까? 감사! 불분명하게해서 유감입니다. – Kyle

+0

에밀 (Emile), 이에 대한 답변을 업데이트했습니다. – Matt

관련 문제