基于用户输入动态构造数组——Javascript/jQuery
我有一个美国地区的列表设置为复选框。当用户提交表单时,我需要一个关联状态数组。此数组用于与我的SQL表中的另一个数组进行比较 使用jQuery或javascript,最好的方法是什么 我有一个大致的想法,我相信:基于用户输入动态构造数组——Javascript/jQuery,javascript,jquery,arrays,forms,Javascript,Jquery,Arrays,Forms,我有一个美国地区的列表设置为复选框。当用户提交表单时,我需要一个关联状态数组。此数组用于与我的SQL表中的另一个数组进行比较 使用jQuery或javascript,最好的方法是什么 我有一个大致的想法,我相信: //populate region to state arrays here $("input[name='region']").each(function () { if ($(this).is(':checked')) {
//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')
来标识每个数组,但由于我的所有函数都在静态类中,因此我在使用动态命名数组时遇到了问题。经过编辑以反映新信息并合并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];
}
});
var regionStates={};
区域州['northeast']=['AB','CD','EF'];
地区州['mountains']=['GH','IJ','KL'];
//等等。。。
var-selectedStates=[];
$(“输入[name='region']:选中”)。每个(函数(){
var region=regionStates[this.id];
对于(变量i=0;i
使用此选项,SelectedState将包含所有选定区域的所有状态
抱歉不知道任何真正的美国州缩写。+1非常整洁的解决方案。我要添加的唯一一件事是将选择器更改为
$(“input[name='Region']:checked”)
。对不起,我可能还没有完全弄清楚。每个区域复选框都与状态数组相关联。据我所知,此解决方案将向下一个打开的阵列插槽添加单个状态。所以比如说:东北部、山区、太平洋都有检查。我制作数组,用各自的状态填充每个区域。超级阵列如何成为所有这些区域阵列的组合?谢谢抱歉说不清楚。马特非常优雅!!非常感谢。