Удаление определенных элементов из глобального массива при установке флажка и отмена проверки с помощью JavaScript - PullRequest
0 голосов
/ 22 ноября 2010

Я пытаюсь обновить глобальный массив, когда пользователь устанавливает или снимает флажки в форме. Затем массив будет отправлен на сервер для обновления отмеченных опций в базе данных. Я дошел до того, что поместил идентификаторы отмеченных флажков в массив, но не уверен, как их удалить.

Я создал базовый jsFiddle для демонстрации здесь:

http://jsfiddle.net/ArFuz/

PS - массив будет правильно распределен по именам позже:)

Ответы [ 3 ]

2 голосов
/ 22 ноября 2010

Почему это работает при каждом клике, просто делайте это при отправке формы - есть селектор: флажок, который вы также можете использовать вместо выбора и итерации элементов, которые вам не интересны.

Как предположил Джозеф - вы можете использовать здесь сериализованный массив для построения массива имя / значение

* 1005 например *

$('#submitButton').click( function(ev){

   var ids = [];

    $(':checkbox:checked').each( function(){

         ids.push(this.id);

    });

   //do something with ids

});
2 голосов
/ 22 ноября 2010

Так как вы каждый раз перебираете все флажки, просто очистите массив в начале и поместите только проверенные элементы обратно:

ids = [];

if (this.checked) {    
    ids.push(this.id);
}
1 голос
/ 22 ноября 2010

Я думаю, что вам может быть хорошо с jQuery serializeArray () ( API-ссылка )

$('#myForm input[type=checkbox]').change(function(){

    // get all checked checkboxes
    var ids = $('myForm input[type=checkbox]:checked').serializeArray();

});

РЕДАКТИРОВАТЬ: Пример JSBin

...