IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Remplacement input:text par textarea


Sujet :

jQuery

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 19
    Points : 28
    Points
    28
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 =)

  2. #2
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 391
    Points
    9 391
    Par défaut
    Essayes ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(this).replaceWith(('<textarea></textarea>').attr('name',textname).text(textvalue));

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 19
    Points : 28
    Points
    28
    Par défaut
    Merci pour ta réponse.
    Malheureusement cela ne marche toujours pas. Le script stoppe toujours son exécution à cette ligne...

  4. #4
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 391
    Points
    9 391
    Par défaut
    Et tu as regardé la console d'erreur ?
    Car il y a une parenthèse de trop. Je te laisse chercher...

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 19
    Points : 28
    Points
    28
    Par défaut
    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...

  6. #6
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 391
    Points
    9 391
    Par défaut
    Et ainsi ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $(this).replaceWith('<textarea></textarea>');
    $(this).attr('name',textname).text(textvalue));

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 19
    Points : 28
    Points
    28
    Par défaut
    Toujours pas. J'imagine que le this référence toujours l'ancien champ texte. En attendant j'ai ça qui fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $(this).replaceWith('<textarea name="'+textname+'">'+textvalue+'</textarea>');
    Mais c'est pas très propre ^^

  8. #8
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 937
    Points
    22 937
    Billets dans le blog
    125
    Par défaut
    Bonsoir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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();
    });

Discussions similaires

  1. remplacer des inputs text par des selects
    Par patricx dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 02/05/2011, 15h00
  2. [RegEx] Remplacer un texte par un include
    Par Oprichnik dans le forum Langage
    Réponses: 4
    Dernier message: 25/01/2008, 00h59
  3. [Tableaux] remplacer du texte par des images
    Par elti69 dans le forum Langage
    Réponses: 2
    Dernier message: 12/06/2007, 11h14
  4. Remplacer du texte par une image en css
    Par Seth77 dans le forum Mise en page CSS
    Réponses: 12
    Dernier message: 03/04/2006, 12h57
  5. Remplacer un texte par un autre
    Par Guillaume602 dans le forum C++
    Réponses: 3
    Dernier message: 24/11/2005, 01h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo