Tinymce

speloman Messages postés 8 Date d'inscription samedi 2 février 2008 Statut Membre Dernière intervention 13 mars 2008 - 7 mars 2008 à 18:05
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 - 13 mars 2008 à 20:31
salu a tous.
je sui en tr1 de développer une interface admin pour mon site persu et g integré tinyMCE la dedans.
sauf que g un problem lors du controle sur les champs vides des formulaires la ou l'éditeur figure.
pour le controle j'utilise une fonction qui boucle sur les champs du formulaire. le problem est le suivant : en clicant sur le bouton d'envoi g un message qui dit que le champs est vide malgré qu'il ne l'est pas. si reclice sur envoier l'émission est effectué. le problem existe seulement avec les textarea la ou tinyMCE intervien.
c'est la fonction que j'utilise pour le teste:
function check()
{
  // Avant l'envoi du formulaire, tout les champs doivent ètre remplis
 
  for(var i = 0; i < document.forms.length; i++){
  for(var j = 0; j < document.forms[i].elements.length; j++){
  
// Les champs de format de texte ne sont pas testés
  if(document.forms[i].elements[j].name != 'mce_editor_0_styleSelect' & document.forms[i].elements[j].name != 'mce_editor_0_formatSelect' &
  document.forms[i].elements[j].name != 'mce_editor_0_font familySelect' & document.forms[i].elements[j].name != 'mce_editor_0_font sizeSelect'&
  document.forms[i].elements[j].name != 'mce_editor_0_fontNameSelect' &
  document.forms[i].elements[j].type != 'hidden' & document.forms[i].elements[j].type != 'file' ){
   
   if(document.forms[i].elements[j].value == '' || document.forms[i].elements[j].value == '000'){
    alert('Remplissez le champ  '+document.forms[i].elements[j].name);
       return(false);}


   if(document.forms[i].elements[j].name == 'prix'  ||
      document.forms[i].elements[j].name == 'dure'){
    var s;
      for(var k = 0; k < document.forms[i].elements[j].value.length; k++){
     // le caractuel est stocké dans s.
        s = document.forms[i].elements[j].value.charAt(k);
        // les caractères valids sonts les chiffres.
        if( !(((s >= 0) && (s <= 9))||(s=='-'))){
      alert('Le champ '+document.forms[i].elements[j].name+' ne peut comporter que des chiffres');
           return(false);}}
   }}}}}

quelqu1 a une idé????

4 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
8 mars 2008 à 11:12
Bonjour,

    difficile de répondre....   on n'a pas le formulaire...
    la function check()   fait partie de tinyMCE ?
       non : tu peux largement la simplifier !

    met nous l'extrait du formulaire en question, avec l'appel à check()...

    une remarque : t'es difficile à lire....

<hr />                Cordialement            Bul        
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
8 mars 2008 à 14:55
Bonjour,

j'ai tout d'abord un doute sur le & que tu utilises, c'est un opérateur binaire à ne pas confondre avec l'opérateur logique &&

Ecrire déjà
var O_Name =  document.forms[i].elements[j].name;



// par exemple





pour plus de lisibilité
ce qui donnerait
if( O_Name ! = 'mce_editor_0_styleSelect'  &&
    O_Name ! = 'mce_editor_0_formatSelect' &&
...etc...

Autre piste

ensuite il faut peut être laisser le temps aux routines de tinyMCE de mettre à jour leur modification...

testes avec un setTimeout sur l'action du bouton...

Quel navigateur utilises tu ? IE est souvent récalcitrant sur ce genre de mise à jour

;O)
0
speloman Messages postés 8 Date d'inscription samedi 2 février 2008 Statut Membre Dernière intervention 13 mars 2008
10 mars 2008 à 12:45
salu...


merci a vous d'avoir lu mon msg...


pour les formulaires,j'utilise la fonction a vec plusieurs mai en voila un:


<script language="javascript" type="text/javascript" src="templates/jscripts/test_form.js"></script>
<script language="javascript" type="text/javascript" src="templates/jscripts/tiny_mce/tiny_mce.js"></script>
<script language="javascript" type="text/javascript" src="templates/jscripts/tiny_mce_config.js"></script>



 {L_EXPLAIN}


<form method="post" action="formations.php?mode=domaine&amp;action=ajout" onSubmit="return(check());" >



 [[formations.php?mode=certification&amp;action=ajout Ajouter une certification]]

 {L_TITLE}

 
   
  
  ----

   <label for="confirm_pass">Non de d&eacute;partement : </label>,
   ,
  
  ----

   <label for="current_pass">Description (en bref) :</label>   ,
   <textarea name="desc" cols="70" rows="20" style="width: 70%" id="desc" ></textarea>
   ,
  
 

  

{S_HIDDEN_FIELDS}
  
  
  
 

</form>

j'ai telechargé la fonction qqpar dans le net. elle fet pa parti de tinymce.

pour l'orérateur & sa cose pa de problem avec des formukaires sans l'editeur tiny.
j compron pa cette histoire de settimeout.tu m'expliquer encore mieu? existe_t_il une fonction propre a tiny pour tester les champs? moi j'utilise IE.
merci a vous tous...
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
13 mars 2008 à 20:31
Bonjour,
<table bgcolor= "#e6effe" border="0" cellpadding="5" cellspacing="0" width="100%">----, pour l'orérateur & sa cose pa de
problem</td>
</td></tr></tbody></table>l'opérateur
& te renverras toujours 0 quelle que soit les tests sur des
chaines, je n'ai pas testé du reste...

<table bgcolor ="#e6effe" border="0" cellpadding="5" cellspacing="0" width="100%">----, j compron pa cette histoire de
settimeout</td>
</td></tr></tbody></table>juste
pour dire que sur l'action du bouton tu effectues une fonction qui setTimeoute
la vrai fonction
exemple :

avec une Fct_Button définie comme ceci

function Fct_Button(){
  setTimeOut( "Fct_Validation()", 500);
}

La fonction de validation ne sera lancée que 0.5 s après l'appui sur le bouton.
;O)
0
Rejoignez-nous