基于用户输入动态构建数组 - Javascript/jQuery

问题描述:

我有一个设置为复选框的美国地区列表。当用户提交表单时,我需要一个关联状态数组。该数组用于与我的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) 

      } 
     }); 

在此先感谢!

PS。我尝试使用输入值var regionValue = $(this).attr('value')来识别每个数组,但我遇到了动态命名数组的问题,因为我的所有函数都在静态类中。

编辑,以反映新的信息,并纳入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非常整洁的解决方案。只有我要添加的是将选择器更改为'$(“input [name ='Region']:checked”)'。 – GenericTypeTea 2010-08-20 09:13:54

+0

对不起 - 可能还没有完全清楚。每个区域复选框都与一组状态相关联。据我所知,这个解决方案将增加一个单独的状态到下一个开放阵列插槽。例如:东北,山区,太平洋被检查。我使用各个状态填充每个区域的数组。 superArray如何成为所有这些区域数组的组合?谢谢!抱歉不清楚。 – Kyle 2010-08-20 09:38:53

+0

埃米尔,我已经更新了我的回答以反映这一点。 – Matt 2010-08-20 09:55:46