Динамически создавать массив на основе пользовательского ввода - Javascript / jQuery

У меня есть список регионов США, установленных как флажки. Когда пользователь отправляет форму, мне нужен массив связанных состояний. Этот массив используется для сравнения с другим массивом в моих таблицах SQL.

Как лучше всего это сделать с помощью 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') для идентификации каждого массива, но у меня возникают проблемы с динамически именуемыми массивами, поскольку все мои функции находятся в статических классах.

1
задан Kyle 20 August 2010 в 09:00
поделиться

1 ответ

Отредактировано, чтобы отразить новую информацию и включить комментарий GenericTypeTea:

Предполагая, что идентификатор каждого флажка установлен на имя региона, как насчет:

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 будет содержать все состояния всех регионов, которые выбрано.

Приносим извинения за незнание сокращений штатов США.

2
ответ дан 2 September 2019 в 21:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: