JQuery обрабатывает клонированные объекты - PullRequest
1 голос
/ 25 июня 2010

Быстрый вопрос, пожалуйста. Как вы обрабатываете объекты JQuery-клоны?

Простой пример:

<div class="hello">
<select name="products[]">
<?php foreach ($pageposts as $post):
<option value="'.$post->ID.'">'.$post->post_title.'</option>
endforeach;?>
</select>
<input type="text" name="try[]">
<br/>
</div>
<form>
<div id="goodbye"></div>
<input type="button" id="rp" value="add">
</form>

Этот JQuery (ниже) создает "clone / s" класса 'hello' внутри div .goodbye, который находится внутри формы.

$j=jQuery.noConflict();
$j(document).ready(function() {
$j('#rp').click(function(){ 
var str = $j(this).parent('form').serialize();
$j('.hello').clone().removeClass('hello').appendTo('#goodbye');
alert(str);
});
});

Что мне нужно сделать, это обработать «клонированный» выбор / входные данные, помещенные в форму. Это предупреждение, поэтому я могу видеть, когда (что я не знаю) получить значения для передачи.

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

1 Ответ

0 голосов
/ 26 июня 2010

Проблема здесь в том, что эти две строки поменялись местами:

var str = $j(this).parent('form').serialize();
$j('.hello').clone().removeClass('hello').appendTo('#goodbye');

Вы сериализуете <form> перед добавлением к нему, просто поменяйте его местами так:

$j=jQuery.noConflict();
$j(document).ready(function() {
    $j('#rp').click(function(){ 
        $j('.hello').clone().removeClass('hello').appendTo('#goodbye');
        var str = $j(this).parent('form').serialize();
        alert(str);
    });
});​

Рабочее демо можно посмотреть здесь

...