JQuery: установка клонированных проблем со значениями блоков выбора - PullRequest
0 голосов
/ 13 мая 2011

В Jquery я на лету создаю блоки выбора на основе количества элементов в массиве php и пытаюсь изменить значение каждого параметра блока выбора на значение элемента массива.

Во-первых, вот HTML:

<div id="artistArea">
  <div class="category_block">
    <select name="artistSelect[]" class="cat_list">
        <option value="">- none -</option> 
    </select>
  </div>
</div>

Вот преобразование массива:

var arrayFromPHP = <?php echo json_encode($exhibArray) ?>; // There's our array from php->jquery

Затем я начинаю с заполнения опций в первом выборе, а затем создаю последующие поля внутри цикла «каждый» в обратном вызове «success»:

$.ajax({
        url: 'artistpop.php',
        success: function(data){
            $('.cat_list').append(data); //Sets options for first select box
            $.each(arrayFromPHP, function (i, elem) { //loop through our array values
                $("#artistArea > .category_block:last .cat_list").val(elem); //set the select box value
                $('#artistArea > .category_block:last').after($('#artistArea > .category_block:last').clone()); //clone the previous select box     
            });
        }   
    });

Итак ... Проблема в следующем:

Начальное создание ящиков и их заполнение работают нормально, как и создание последующих ящиков. Однако, только первое поле выбора установлено с соответствующим значением из массива; остальные остаются с опцией 'none'.

Может ли это быть что-то не так в каждом цикле?

Надеюсь, это достаточно ясно, чтобы понять - я в замешательстве!

1 Ответ

0 голосов
/ 13 мая 2011

Вы пытались установить атрибут "selected" для фактической опции, которую вы хотите использовать в качестве значения по умолчанию, вместо того, чтобы установить значение select? Другими словами, что-то вроде ...

$('#artistArea > .category_block:last .cat_list option[value=' + elem + ']').attr('selected','selected');

...