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 07/08/2011, 23h25   #1
Membre du Club
 
Étudiant
Inscription : juillet 2005
Messages : 267
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2005
Messages : 267
Points : 58
Points : 58
Par défaut [Plugin PrettyPhoto] Récupérer le contenu d'un textarea

Bonsoir à tous !

J'essaie de récupérer le contenu du textarea après un clique sur un bouton:

Code :
1
2
3
4
 
$('#sendButton').live('click',function(){
            alert($('#messageContent').val());       
});
où messageContent est l'ID de mon textarea.

L'alert() est toujours vide (idem avec text(), html() ou getElementById.value)

Une idée du problème ?
Apparemment c'est un problème récurrent :s

Merci d'avance pour votre aide !
__________________
Blog : http://alacoche.geekos.fr/

Donnez votre voix pour 2012 : http://www.votelibre.fr/
nims est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2011, 11h27   #2
Membre régulier
 
Avatar de Goldocrack
 
Inscription : novembre 2002
Messages : 120
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : novembre 2002
Messages : 120
Points : 83
Points : 83
Salut,

C'est bizarre, normallement un val contient toujours ta variable. Je viens de faire un test rapide avec Firefox et Firebug activé. Quand tu tapes simplement dans la console $("#idTextArea").val(); il t'affiche correctement le contenu.

Est-tu sûr que cela ne vient pas de l'affichage de l'alert ? (les sauts de ligne peuvent le gêner par exemple) ?

@+
__________________
  • Un langage de programmation est censé être une façon conventionnelle de donner des ordres à un ordinateur. Il n'est pas censé être obscur, bizarre et plein de pièges subtils (ça ce sont les attributs de la magie). [Dave Small]
  • Un programme c'est un sort que l'on jette à un ordinateur et qui se transforme en messages d'erreur.
  • Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse.

et ne sont pas des options...
Goldocrack est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2011, 13h34   #3
Membre du Club
 
Étudiant
Inscription : juillet 2005
Messages : 267
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2005
Messages : 267
Points : 58
Points : 58
J'ai testé: toujours KO.

Trouvé le bug : le textarea n'est pas présent au début (display:none).
Il est affiché dans une lightbox...

J'ai le bug mais pas la solution...
__________________
Blog : http://alacoche.geekos.fr/

Donnez votre voix pour 2012 : http://www.votelibre.fr/
nims est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2011, 13h57   #4
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Bonjour,
ca, ca fonctionne :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<html>
<head>
    <title>test</title>
<!-- Scripts Google : initialisation jquery -->
	<script type="text/javascript" src="http://www.google.com/jsapi"></script>
	<script type="text/javascript">google.load("jquery", "1.6.1");</script>
	<script type="text/javascript">
	$('#sendButton').live('click',function(){
		alert($('#messageContent').val());       
	});
	</script>
</head>
<body>
 
<form>
	<textarea id="messageContent"></textarea>
	<input id="sendButton" type="submit" value="envoi" />
</form>
</body>
</html>
Donc ... la vérité est ailleurs ...
Vérifie ton code, ou affiche-le ici.
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 08/08/2011, 14h09   #5
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 793
Points : 35 793
Citation:
Envoyé par nims
J'ai le bug mais pas la solution...
Oui, mais la solution dépend du code, donc on a encore moins de chance que toi de trouver la solution !
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2011, 15h04   #6
Membre régulier
 
Avatar de Goldocrack
 
Inscription : novembre 2002
Messages : 120
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : novembre 2002
Messages : 120
Points : 83
Points : 83
Je plussoie pour le code, comment veux-tu qu'on t'aide si on n'a pas le code ? ...

J'utilise moi aussi des éléments invisibles et ça fonctionne très bien.
Je pense que tu poses ton listener trop tôt, avant même la construction du textarea.

Deux tests à faire :

1 - permet de voir si ton click s'active bien
Code :
1
2
3
4
5
$("#sendButton").live("click",function(){
            //alert($("#messageContent").val());
 
            alert("TEST ICI");
});
et

2 - permet d'être sûr que le listener est créé sur un objet qui existe réellement
Code :
1
2
3
4
5
6
7
$(document).ready(function() {
     $("#sendButton").live("click",function(){
                 //alert($("#messageContent").val());       
 
                 alert("TEST LA");
     });
});
__________________
  • Un langage de programmation est censé être une façon conventionnelle de donner des ordres à un ordinateur. Il n'est pas censé être obscur, bizarre et plein de pièges subtils (ça ce sont les attributs de la magie). [Dave Small]
  • Un programme c'est un sort que l'on jette à un ordinateur et qui se transforme en messages d'erreur.
  • Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse.

et ne sont pas des options...
Goldocrack est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2011, 21h11   #7
Membre du Club
 
Étudiant
Inscription : juillet 2005
Messages : 267
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2005
Messages : 267
Points : 58
Points : 58
Re!

Pour compléter, j'utilise le plugin PrettyPhoto qui permet d'afficher une lightbox (photos, texte, html...).
Voici le plugin : PrettyPhoto

Voici mon bout de code HTML:
Code :
1
2
3
4
5
 
<a href="#sendMessa" rel="mess"  id="sendMessage">Go</a>
        <div id="sendMessa" style="display:none">
            <textarea id="gfdgfdgdfgf" style="width:350px" rows="8" class="daTextbox"></textarea>
        </div>
L'utilisation du plugin est basique (inline-content)

Une idée ?

Merci d'avance pour votre aide ! Je continue de chercher de mon côté !
__________________
Blog : http://alacoche.geekos.fr/

Donnez votre voix pour 2012 : http://www.votelibre.fr/
nims est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 09h39   #8
Membre régulier
 
Avatar de Goldocrack
 
Inscription : novembre 2002
Messages : 120
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : novembre 2002
Messages : 120
Points : 83
Points : 83
Salut,

ton code n'est pas complet, où est ton bouton par exemple ???

Que donne les deux tests que je t'ai donné ?
__________________
  • Un langage de programmation est censé être une façon conventionnelle de donner des ordres à un ordinateur. Il n'est pas censé être obscur, bizarre et plein de pièges subtils (ça ce sont les attributs de la magie). [Dave Small]
  • Un programme c'est un sort que l'on jette à un ordinateur et qui se transforme en messages d'erreur.
  • Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse.

et ne sont pas des options...
Goldocrack est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 13h27   #9
Membre du Club
 
Étudiant
Inscription : juillet 2005
Messages : 267
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2005
Messages : 267
Points : 58
Points : 58
Les tests sont OK.
Le alert() se fait bien après le "clic".

le plugin affiche la box avec un certain template de base.
Ce template est modifiable. C'est dans ce template que j'ai ajouté mon bouton.

Voici le code JS: http://jsfiddle.net/kapik/pVMx8/

Le bouton "Envoyer" est donc dans le JS.
Le textarea a un id unique...

Apparemment d'autres ont ce problème (forum support) mais pas de solution...

En espérant que ca vous aide

Merci d'avance !
__________________
Blog : http://alacoche.geekos.fr/

Donnez votre voix pour 2012 : http://www.votelibre.fr/
nims est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 15h12   #10
Membre régulier
 
Avatar de Goldocrack
 
Inscription : novembre 2002
Messages : 120
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : novembre 2002
Messages : 120
Points : 83
Points : 83
Voilà, après plusieurs tests (30 pour être précis) j'ai situé la cause du problème :

la valeur du textarea n'est modifié qu'au moment de la FERMETURE de ta "popup", ce qui empêche de récupérer le .val() dans ton code.

Regarde la modification suivante : http://jsfiddle.net/pVMx8/30/ (j'ai changé le nom du textarea pour être sûr)

En fait tu écris dans ton cadre, et tu cliques sur "envoyer", comme prévu, le .val() ne donne rien et " test" s'affiche à la place.
Ferme en appuyant sur "close".
Re-ouvre la popup et re-écrit qque chose, re-envoie, et là au miracle ! il s'affiche " test test", ce qui veut dire que la valeur du textarea a été conservé tel quel au moment de la fermeture.
Tu peux recommencer pour obtenir au final un " test test test"

Une petite conclusion perso, plug-in beurk, passage par jquery.blockUI qui permet de faire (à priori) la même chose mais qui fonctionne (pour l'utiliser) pour récupérer la variable directement.
__________________
  • Un langage de programmation est censé être une façon conventionnelle de donner des ordres à un ordinateur. Il n'est pas censé être obscur, bizarre et plein de pièges subtils (ça ce sont les attributs de la magie). [Dave Small]
  • Un programme c'est un sort que l'on jette à un ordinateur et qui se transforme en messages d'erreur.
  • Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse.

et ne sont pas des options...
Goldocrack est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/08/2011, 15h34   #11
Membre du Club
 
Étudiant
Inscription : juillet 2005
Messages : 267
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2005
Messages : 267
Points : 58
Points : 58
pow pow !

Merci pour le temps passé dessus !!

Ok pour ta conclusion.
Par contre pour les photos il est pas mal...
Tu en pense quoi ?

Merci pour la proposition du plugin, je vais le regarder !
__________________
Blog : http://alacoche.geekos.fr/

Donnez votre voix pour 2012 : http://www.votelibre.fr/
nims est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 15h50   #12
Membre régulier
 
Avatar de Goldocrack
 
Inscription : novembre 2002
Messages : 120
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : novembre 2002
Messages : 120
Points : 83
Points : 83
On m'a tellement aidé sur ce site que je fais maintenant la même chose...

Pour les photos, tu peux également utiliser blockUI pour les afficher sinon j'utilise encore le tout bête lightbox (sic)

Penses au tag si tu souhaites clôturer le sujet.

un +1 fait toujours plaisir
__________________
  • Un langage de programmation est censé être une façon conventionnelle de donner des ordres à un ordinateur. Il n'est pas censé être obscur, bizarre et plein de pièges subtils (ça ce sont les attributs de la magie). [Dave Small]
  • Un programme c'est un sort que l'on jette à un ordinateur et qui se transforme en messages d'erreur.
  • Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse.

et ne sont pas des options...
Goldocrack est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 15h57   #13
Membre du Club
 
Étudiant
Inscription : juillet 2005
Messages : 267
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2005
Messages : 267
Points : 58
Points : 58
Oki !
Lightbox sic ?

J'attendais ta réponse pour "Résolu"

Encore merci ! ++
__________________
Blog : http://alacoche.geekos.fr/

Donnez votre voix pour 2012 : http://www.votelibre.fr/
nims est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h56.


 
 
 
 
Partenaires

Hébergement Web