Передача массива из форм ввода, используя метод get - PullRequest
0 голосов
/ 26 ноября 2010

Я передаю массив из входных данных формы (флажки), используя метод get.При работе в ajax с:

var subcat_checked = new Array();
$.each($("input[name='subcategories']:checked"), function() {
    subcat_checked.push($(this).val());
});
$.ajax({
    type: 'GET',
    url: '{% url view-category root_category.slug %}',
    data: {subcat: subcat_checked},
    success: function(result) {
        /* stuff */
    },
    dataType: 'json'
});

ключом переменной является 'subcategories', когда флажок не установлен, и 'subcategories []', когда некоторые проверены.при использовании не-AJAX-формы и отмечены некоторые флажки, ключ переменной равен 'category' (без [] в конце).

Поскольку я хотел бы использовать не-AJAX-форму в качествеОткат, если JavaScript отключен, я хотел бы иметь тот же ключ, когда некоторые флажки установлены.

Кто-нибудь знает, как я могу это сделать?

Спасибо

Ответы [ 2 ]

0 голосов
/ 27 ноября 2010

Это изменение было сделано в jQuery 1.4+, но вы можете отменить его с помощью опции traditional , чтобы получить старую не-1004 * сериализацию, например:

$.ajax({
    traditional: true,
    type: 'GET',
    url: '{% url view-category root_category.slug %}',
    data: {subcat: subcat_checked},
    success: function(result) {
        /* stuff */
    },
    dataType: 'json'
});

Вы можете прочитать больше об этой опции в $.param() документах (что в конечном итоге вызывается при передаче объекта в качестве вашего data свойства) .... но в основном это именно то, что вы хотите оставив [] выключенным.

0 голосов
/ 26 ноября 2010

попробуйте это:

var subcat_checked = $("input[name='subcategories']:checked").serializeArray();

$.ajax({
    type: 'GET',
    url: '{% url view-category root_category.slug %}',
    data: {subcat: subcat_checked},
    success: function(result) {
        /* stuff */
    },
    dataType: 'json'
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...