Динамически построить массив на основе пользовательского ввода - Javascript / jQuery - PullRequest
1 голос
/ 20 августа 2010

У меня есть список регионов США, установленных как флажки. Когда пользователь отправляет форму, мне нужен массив связанных состояний. Этот массив используется для сравнения с другим массивом в моих таблицах 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 Ответ

2 голосов
/ 20 августа 2010

Отредактировано для отражения новой информации и включения комментария 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 будетсодержит все штаты всех выбранных регионов.

Извинения за то, что не знали реальных сокращений штатов США.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...