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

Bibliothèques & Frameworks Discussion :

Comment récupérer la valeur d'un textarea avec javascript ? [TinyMCE]


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 17
    Points : 16
    Points
    16
    Par défaut Comment récupérer la valeur d'un textarea avec javascript ?
    Bonjour

    aprés avoir cherché sur différents forum et passé qq heures à m'énerver j'espere que qq un pourra me répondre.
    Voici mon pb:

    J utilise tinymce dans un textarea
    Je veux simplement vérifier en javascript que le champs textarea n'est pas vide avant de valider mon formulaire.
    Le pb c est que je n arrive pas à récupérer la valeur du textarea

    Je vous laisse mes bout de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    <script type="text/javascript">
    function verif(){
    	alert_erreur='';
    	if(document.mission.TypeMissionDesc.value==''){
    		alert_erreur+='- Un descriptif\n';
    	}	
    	if(alert_erreur!=''){
    		alert("Merci de renseigner :\n"+alert_erreur);
    	}else{
    		document.mission.submit();
    	}
    }
     
    	tinyMCE.init({
    		// General options
    		mode : "textareas",
    		theme : "advanced",
    		plugins : "safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",
     
    		// Theme options
    		theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull",
    		theme_advanced_buttons2 : "styleselect,formatselect,fontselect,fontsizeselect",
    		theme_advanced_buttons3 : "bullist,numlist,|,outdent,indent,blockquote,|,link,unlink,|,preview,|,forecolor,backcolor",
    		theme_advanced_buttons4 : "hr,|,charmap,advhr,|,print",
    		theme_advanced_toolbar_location : "top",
    		theme_advanced_toolbar_align : "left",
    		theme_advanced_path_location : "bottom",
    		theme_advanced_resizing : true,
     
    		// Example content CSS (should be your site CSS)
    		content_css : "../../css/main.css",
     
    		// Drop lists for link/image/media/template dialogs
    		template_external_list_url : "lists/template_list.js",
    		external_link_list_url : "lists/link_list.js",
    		external_image_list_url : "lists/image_list.js",
    		media_external_list_url : "lists/media_list.js",
     
    		// Replace values for the template plugin
    		template_replace_values : {
    			username : "Some User",
    			staffid : "991234"
    		}
    	});
    </script>
     
    <form action="ajout_mission_exe.php" method="post" name="mission">
    <textarea name="TypeMissionDesc" style="width:350px; height:150px;"></textarea>
    <a href="javascript:verif();" >Valider</a>
    </form>
    voilà, en fait j ai document.mission.TypeMissionDesc.value qui est toujours vide

    n'y connaissant pas gd chose à tinymce, j ai recopié le tinymce.ini...peut etre que ca vient de là....

    merci d avance pour votre iade

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 17
    Points : 16
    Points
    16
    Par défaut precision
    juste au cas ou car je sais qu il faut tjrs chercher avant de demander, j ai bien essayé tinyMCE.getContent mais sans succés

    j ai essayé ca pour juste afficher le contenu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function verif(){
    	val = tinyMCE.getContent("TypeMissionDesc");
    	alert(val);
    }
     
    ou ca ( en rajoutant id="desc_mission" à mon textarea
    function verif(){
    	val = tinyMCE.getContent("desc_mission");
    	alert(val);
    }
    mais tjrs rien, j ai un message erreur ds IE : "cet objet ne gère pas cette propriété"

    je sens que ca vient de la config de tinymce mais je sais pas ou chercher ,
    merci pour votre aide

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 41
    Points : 26
    Points
    26
    Par défaut
    En fait, tinymce lors de l'initialisation du script vient caller par dessus tes textarea une iframe (il me semble de ce que j'ai pu comprendre brièvement sans trop me pencher dessus)... je te passe les détails car je n'ai plus trop en tête le pourquoi du comment.

    Toujours est-il que si tu veux tester la valeur de ton champ textarea, il va falloir lors de ta fonction de vérification javacript, appeler la fonction de tinymce qui permet de faire basculer le contenu de l'iframe vers ton textarea.

    tinyMCE.triggerSave : http://wiki.moxiecode.com/index.php/...CE.triggerSave
    Makes a cleanup and moves the contents from the editor to the form field.

    Bref au final niveau code, voici ce que cela donne pour le javascript (à insérer dans les balises <head></head> de ta page html). J'ai constaté aussi que par défaut bien souvent l'iframe contenait un "<br>" non visible mais pourtant bien la... va savoir, d'ou la nécessité de tester son existence :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function verification(formulaire){
           tinyMCE.triggerSave(true, true);
     
           if(formulaire.tontextarea.value=="" || formulaire.tontextarea.value=="<br>")
    		alert('Veuillez insérer du contenu.');
           else		
    		formulaire.submit();
    }
    Pour le html, je t'indique uniquement le formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <form name="formulaire" method="post" action="tapage.php">
    <table>
    <tr>
          <td>Saisissez le contenu :</td>
    </tr>
    <tr>
          <td><textarea name="tontextarea" cols="70" rows="20"></textarea></td>
    </tr>
    <tr>
          <td><input type="button" value="Envoyer" onclick="javascript:verification(this.form);"/></td>
    </tr>
    </table>
    </form>
    Voila, normalement cela devrait pouvoir fonctionner, tiens moi au jus.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    et pour l'inverse :

    tinyMCE.updateContent(form_element_name);

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 17
    Points : 16
    Points
    16
    Par défaut
    merci pour la réponse, étant au boulot actuellement, je testerais ca ce soir et vous tiens informé

    merci encore

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 17
    Points : 16
    Points
    16
    Par défaut
    super ca marche!!

    par contre j'ai changé les test sur la valeur :
    if((document.mission.TypeMissionDesc.value=="") || (document.mission.TypeMissionDesc.value=="<html />") || (document.mission.TypeMissionDesc.value=="<p>&nbsp;</p>")){traitement}

    je me suis rendu compte de ca en récupérant la valeur en php
    en fait par défaut si y on a rien ecrit ds le textarea, chez moi la valeur du champ est "<html />" et si par ex on ecrit qq chose et qu'ensuite on efface ce qu on vient de taper, le contenu du champs est "<p>&nbsp;</p>"

    le test sur <br> ne change rien chez moi...par défaut c <html>....

    ben merci bcp en tout cas

    sinon , matcullien, une précision ?

    qu est ce que t entend par l inverse? pour la fonction tinyMCE.updateContent(form_element_name);

    c'est pour affecter une valeur au champs de formulaire c ca?

    merci bye

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/08/2011, 05h24
  2. [XL-2007] Comment récupérer les valeurs d'une plage nommée avec le gestionnaire de nom
    Par Mamadou79 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/09/2010, 11h50
  3. Réponses: 6
    Dernier message: 21/12/2009, 12h08
  4. Réponses: 3
    Dernier message: 07/10/2008, 12h13
  5. Comment récupérer une valeur de cellule avec le bon format?
    Par jeo13 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 10/06/2008, 13h41

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