2010-06-25 3 views
1

Question rapide s'il vous plaît. Comment traitez-vous les objets clones JQuery?JQuery processus objets clonés

Exemple simple:

<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> 

Cette JQuery (ci-dessous) crée un "clone/s" de la classe 'bonjour' à l'intérieur du div .goodbye qui se trouve dans une forme.

$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); 
}); 
}); 

Ce que je dois faire est de traiter les entrées/sélections "clonées" placées à l'intérieur du formulaire. L'alerte est là pour que je puisse voir quand (ce que je n'ai pas) obtenir des valeurs à passer.

Merci à l'avance

Répondre

0

Le problème est la commande ici, ces deux lignes sont inversées:

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

Vous sérialisation le <form>avant ajoutant, swap juste autour comme celui-ci :

$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); 
    }); 
});​ 

You can see a working demo here