Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/06/2011, 09h47   #1
Futur Membre du Club
 
Inscription : mai 2011
Messages : 19
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 19
Points : 18
Points : 18
Par défaut Remplacement input:text par textarea

Bonjour à tous. Je bloque sur ce problème: j'ai une application avec des champs textes, or ces champs textes sont souvent bien remplis. Du coup je dois les remplacer sans modifier le code html par des textarea:
Challenge accepted:
Code :
1
2
3
4
5
6
 
$('input[type="text"]').each(function() {
        var textname = $(this).attr('name');
	var textvalue = $(this).attr('value');
   $(this).$remplaceWith(('<textarea/>').attr('name',textname).prepend(textvalue));
});
Ce code ne fonctionne pas... J'ai un peu du mal à trouver pour la dernière ligne. Toute aide sera la bienvenue =)
Kouala est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2011, 10h37   #2
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 802
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 802
Points : 1 515
Points : 1 515
Essayes ceci :
Code :
$(this).replaceWith(('<textarea></textarea>').attr('name',textname).text(textvalue));
__________________
Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2011, 10h45   #3
Futur Membre du Club
 
Inscription : mai 2011
Messages : 19
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 19
Points : 18
Points : 18
Merci pour ta réponse.
Malheureusement cela ne marche toujours pas. Le script stoppe toujours son exécution à cette ligne...
Kouala est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2011, 15h05   #4
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 802
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 802
Points : 1 515
Points : 1 515
Et tu as regardé la console d'erreur ?
Car il y a une parenthèse de trop. Je te laisse chercher...
__________________
Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2011, 09h35   #5
Futur Membre du Club
 
Inscription : mai 2011
Messages : 19
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 19
Points : 18
Points : 18
J'ai enlevé la 1ère parenthèse du replaceWith, du coup il n'y a plus d'erreur. Le problème c'est que cette fonction retourne l'élément qui est remplacé. Les fonctions qui suivent ne sont donc pas appliquées au textarea...
Kouala est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2011, 11h34   #6
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 802
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 802
Points : 1 515
Points : 1 515
Et ainsi ?
Code :
1
2
$(this).replaceWith('<textarea></textarea>');
$(this).attr('name',textname).text(textvalue));
__________________
Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2011, 12h03   #7
Futur Membre du Club
 
Inscription : mai 2011
Messages : 19
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 19
Points : 18
Points : 18
Toujours pas. J'imagine que le this référence toujours l'ancien champ texte. En attendant j'ai ça qui fonctionne :
Code :
1
2
 
$(this).replaceWith('<textarea name="'+textname+'">'+textvalue+'</textarea>');
Mais c'est pas très propre ^^
Kouala est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 00h02   #8
Rédacteur
 
Avatar de danielhagnoul
 
Homme Daniel Hagnoul
Étudiant perpétuel
Inscription : février 2009
Messages : 3 221
Détails du profil
Informations personnelles :
Nom : Homme Daniel Hagnoul
Âge : 61
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant perpétuel
Secteur : Enseignement

Informations forums :
Inscription : février 2009
Messages : 3 221
Points : 6 767
Points : 6 767
Bonsoir

Code :
1
2
3
4
5
6
<form>
	<input id="monID1" class="maClass11 maClass21" type="text" name="prenom1" value="1: Mon nom est personne !"/>
	<input class="maClass12 maClass22" type="text" name="prenom2" value="2: Mon nom est personne !"/>
	<input id="monID3" type="text" name="prenom3" value="3: Mon nom est personne !"/>
	<input type="text" name="prenom4" value="4: Mon nom est personne !"/>
</form>
Code :
1
2
3
4
5
6
7
8
9
10
11
12
$("input[type='text']").each(function(i, item){
	var id = item.id, cl = $(item).attr("class"), n = item.name;
 
	$("<textarea/>", {
		"id": (id) ? (id) : ("dvjhTextarea" + $.now()),
		"class": (cl) ? (cl) : (""),
		"name": (n) ? (n) : (""),
		"text": $(item).val()
	}).insertAfter(this);
 
	$(this).remove();
});
__________________

FAQ jQuery

Mon cahier d’exercices sur jQuery & Co

Si un message vous a aidé ou vous semble pertinent, votez pour lui !
danielhagnoul est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h25.


 
 
 
 
Partenaires

Hébergement Web