2010-12-06 6 views
6

Puis-je cloner une zone de texte sans son contenu? Cela signifie que si j'entre certaines valeurs dans la zone de texte après le clonage, je veux une zone de texte vide.Est-ce possible? Ou jquery clone renvoie ceci comme innerHtml ?Jquery clone d'une zone de texte sans contenu

+0

Par zone de texte faîtes-vous référence à textarea? – benhowdle89

+0

Pas de texte de saisie –

Répondre

16

Par défaut, la valeur des copies de clonage avec le <input> a actuellement, mais vous pouvez simplement l'effacer lors du clonage, par exemple:

var clone = $(".myInput").clone(true).val(""); 

Sur la base de votre commentaire, vous auriez besoin de quelque chose comme ceci lors du clonage la ligne:

var newRow = $(this).closest('tr').clone(true).appendTo('table') 
            .find('input').val(''); 
+0

Par curiosité, qu'est-ce que 'true' ajoute quand il est utilisé avec' clone() '? –

+0

@David - il copie les gestionnaires d'événements/données que l'élément peut avoir ... ainsi, par exemple, s'il y a un gestionnaire 'keyup', etc ... sans' true', rien de tout cela ne serait copié. –

+0

@ David, Merci son fonctionnement parfaitement bien –

2

Il suffit de définir la valeur de la zone de texte cloné à une chaîne vide, comme ceci:

HT ML:

<input id="source" type="textbox" value="Some text..." /> 
<div id="target"></div> 

JavaScript:

$(function() { 
    $("#source").clone().val("").appendTo("#target"); 
}); 

Exemple:http://jsfiddle.net/X5x4L/

Edit: Fonctionne avec aswell textarea, voir: http://jsfiddle.net/X5x4L/1/

+0

var newRow = $ (this) .closest ('tr') .clone (true) \t \t \t \t .val ("") .appendTo ('table'); –

+0

Ne fonctionne pas ..... –

+0

@OddOneOut: Ok? Est-ce votre code? Ça ne marche pas? Ne laissez pas tomber du code ... –

0

Dans mon c ase, j'ai eu beaucoup de champs dans la forme, afin de les rendre tous nuls après clonning:

$('.user-address:first').clone().appendTo('.user-addresses'); 
$('.user-address:last').find('[name]').val(null); 

trou aide quelqu'un.