Конвертировать список выбора в JSON, используя jQuery - PullRequest
8 голосов
/ 01 декабря 2010

Как я могу получить .val () и .html () всех опций из списка множественного выбора в объект json?Желательно использовать jQuery.

Заранее спасибо!

Немного больше информации:

Я использую два поля множественного выбора.Выделите элементы в левом поле и переместите их вправо.Как только они выберут все элементы, которые они хотят выбрать, они нажмут на кнопку «Отправить», и все элементы в правом окне выбора будут перемещены в основной список.

Вот код, который я использую, как только яОбъект JSON:

datalistObject = JSON.parse(response);
if (datalistObject.length){
    $(".data-list tbody").empty();
    for (var i=0; i < datalistObject.length; i++) {
        var newrow = "<tr><td><input type='checkbox' name='user_id' value='" + datalistObject[i][0] + "' class='data-list-check'></td><td>" + datalistObject[i][1] + "</td></tr>";
        $(newrow).appendTo($(".data-list tbody"));
    }
}

Пример html и вывода будет:

<select name="selecteditems">
    <option value="op1">Option 1</option>
    <option value="op2">Option 2</option>
    <option value="op3">Option 3</option>
</select>

[
    ["op1","Option 1"],
    ["op2","Option 2"],
    ["op3","Option 3"]
]

Ответы [ 2 ]

14 голосов
/ 01 декабря 2010

Что-то вроде этого?

var items = $("#select > option").map(function() {
    var opt = {};
    opt[$(this).val()] = $(this).text();
    return opt;
}).get();

for(var i = 0; i < items.length; i++) {
    for(key in items[i]) {
        alert(key + ': ' + items[i][key]);   
    }
}

Демо: http://jsfiddle.net/eNGUL/

РЕДАКТИРОВАТЬ: Чтобы получить структуру, подобную вашим данным примера:

var items = $("#select > option").map(function() {
    var arr = [];
    arr.push([$(this).val(), $(this).text()]);
    return arr;
}).get();
for(var i = 0; i < items.length; i++) {
    alert(items[i]);
}

Демо: http://jsfiddle.net/karim79/eNGUL/2/

См. .map.

0 голосов
/ 01 декабря 2010

Пожалуйста, смотрите этот пост: Сериализация в JSON в jQuery

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