Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2067 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Problème de submit sous IE

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de submit sous IE

n°1255820
neo00neo
Posté le 30-11-2005 à 10:02:51  profilanswer
 

Bonjour
j'ai créé un formulaire dans lequel le submit ne marche pas sous IE, par sous Mozilla ça fonctionne nickel, tout le traitement...
Donc voilà, j'ai cherché mais je n'ai pas trouvé chaussure à mon pieds.
Voici mon code que j'exécute dans un fichier distant :
 
//Fonction qui compte le nombre d'elements de la liste
function compteElem(liste){
 var tab=0;
 for(i=0;i<liste.options.length+1;i++){
  tab = i;
 }  
 //alert ("Nombre d'element : "+tab);
 if ((tab<21)&&(tab!=0)){
  selectionElementsListe(document.forms.formulaire.liste2,'true');
  document.forms.formulaire.submit();
 }else{
  if (tab>20){
   alert("Vous avez sélectionné trop de portefeuilles, la limite est fixé à 20." );
  }else{
   if (tab==0){
    alert("Veuillez sélectionné au moins un portefeuille.Merci." );
   }
  }
 }
}
 
Et voici mon fichier HTML :
<center><form name="formulaire" style="margin:0" method="GET" action="SUPERVISIONalertes.pl">
<fieldset unselectable="on" style="width:300px">
<legend align="right">
  <a href="javascript:selectionElementsListe(document.forms.formulaire.liste2,'true');document.forms['formulaire'].submit();">
  <div id="imgSelect"></div>
  </a>
</legend>
<table border="0" summary="">
  <tr>
   <td>
     <div id="controleGauche">
     </div>
   </td>
    <td>
      <select align="top" name="liste1" size="10" style="width:120px" multiple>
      <option value="1">Entree 1</option>
      <option value="2">Entree 2</option>
      <option value="3">Entree 3</option>
      <option value="4">Entree 4</option>
      <option value="5">Entree 5</option>
      <option value="6">Entree 6</option>
      <option value="7">Entree 7</option>
      <option value="8">Entree 8</option>
      <option value="9">Entree 9</option>
      <option value="10">Entree 10</option>
      <option value="11">Entree 11</option>
      <option value="12">Entree 12</option>
      <option value="13">Entree 13</option>
      <option value="14">Entree 14</option>
      <option value="15">Entree 15</option>
      <option value="16">Entree 16</option>
      <option value="17">Entree 17</option>
      <option value="18">Entree 18</option>
      <option value="19">Entree 19</option>
      <option value="20">Entree 20</option>
      <option value="21">Entree 21</option>
      <option value="22">Entree 22</option>
      <option value="23">Entree 23</option>
      </select>
    </td>
    <td>
      <table border="0" cellpadding="0" cellspacing="0">
        <tr>
           
     
          <td><div id="controlePrevious"></div></td>
        </tr>
        <tr>
           <td><div id="controleNext">
     </div>
         </td>
        </tr>
      </table>
    </td>
    <td>
      <select align="top" id="1" name="liste2" size="10" style="width:120px" multiple="yes">
      </select>
    </td>
   <td>
    <div id="controleDroit">
     </div>  
   </td>
  </tr>
  <tr>
    <td>
    </td>
    <td>
     <center>
     <div id="DeplaceDroit">
     </div>  
          </center>
    </td>
    <td>
    </td>
    <td>
     <center>
     <div id="DeplaceGauche">
     </div>  
     </center>
    </td>
    <td>
    </td>
  </tr>
</table>
 
<a href="javascript:selectionElementsListe(document.forms.formulaire.liste2,'true');" onClick=javascript:compteElem(document.forms.formulaire.liste2);>Valider</a>
<a href="#" onClick="window.close()">Fermer</a>  
   
</fieldset>  
</form></center>
 
 
Quand je clique sur l'hyperlien, qui a la fonction onClick, normalement il devrait me rediriger mais il ne se passe rien, il n'y a pas non plus d'erreur Javascript de créer, et sous Mozilla tout est nickel, saloperie d'IE !
 
Merci de votre aide !

mood
Publicité
Posté le 30-11-2005 à 10:02:51  profilanswer
 

n°1255853
anapajari
s/travail/glanding on hfr/gs;
Posté le 30-11-2005 à 10:21:36  profilanswer
 

Avant de blamer IE commence par coder proprement :o
Ce bout de code la c'est vraiment nawak:

Code :
  1. <a href="javascript:selectionElementsListe(document.forms.formulaire.liste2,'true');" onClick=javascript:compteElem(document.forms.formulaire.liste2);>Valider</a>


manque des quotes, et puis mieux vaudrait mieux mettre les actions dans le onclick...
 
ps: les messages d'alerte c'est mieux sans faute d'orthographe ;)


Message édité par anapajari le 30-11-2005 à 10:22:51
n°1255879
neo00neo
Posté le 30-11-2005 à 10:37:18  profilanswer
 

Merci pour les fautes d'orthographe. ;-)
Donc j'ai enlevé les quotes, pour que ce soit plus propre, et enlver le "action".
Et j'ai refait ma fonction avec la gestion de action dedans comme ceci :
function compteElem(liste){
 var tab=0;
 for(i=0;i<liste.options.length+1;i++){
  tab = i;
 }  
 //alert ("Nombre d'element : "+tab);
 if ((tab<21)&&(tab!=0)){
  selectionElementsListe(document.forms.formulaire.liste2,'true');
  document.forms.formulaire.action = "SUPERVISIONalertes.pl";
  document.forms.formulaire.submit();
 }else{
  if (tab>20){
   alert("Vous avez sélectionné trop de portefeuilles, la limite est fixé à 20." );
  }else{
   if (tab==0){
    alert("Veuillez sélectionné au moins un portefeuille.Merci." );
   }
  }
 }
}
 
Il n' y a aucune différence... Merci de ton aide !

n°1255892
anapajari
s/travail/glanding on hfr/gs;
Posté le 30-11-2005 à 10:52:29  profilanswer
 

C'est toujours nawak :)
Fallait pas enlever les quotes mais les mettre autour de ton onclick
 
Par ailleurs

Code :
  1. var tab=0;
  2. for(i=0;i<liste.options.length+1;i++){
  3.   tab = i;
  4. }


revient a faire

Code :
  1. tab = liste.options.length;


Message édité par anapajari le 30-11-2005 à 10:52:45
n°1255900
neo00neo
Posté le 30-11-2005 à 11:05:55  profilanswer
 

J'ai réjouté les quotes comme tu m'as dis, j'obtiens ça :
<a href="javascript:selectionElementsListe(document.forms.formulaire.liste2,'true');" onClick="javascript:compteElem(document.forms.formulaire.liste2);">Valider</a>
<a href="#" onClick="window.close()">Fermer</a>  
   
</fieldset>  
</form>
C'est la fin de mon fichier HTML,
j'ai modifié ma valeur 'tab' ave ta ligne de code, et ça marche toujours sur Mozilla 1.5 et pas sur IE 6.0... :-(

n°1255901
bidem
Posté le 30-11-2005 à 11:07:53  profilanswer
 

Code :
  1. var tab=0;
  2. for(i=0;i<liste.options.length+1;i++){
  3.   tab = i;
  4. }


 
Remplace ça par :

Code :
  1. var tab = liste.options.length;


 
Ensuite pour le test de tab, c'est plus joli de présenter comme suit (structure conditionnelle en peigne) :
 

Code :
  1. if (tab>20) {
  2.   alert("Vous avez sélectionné trop de portefeuilles, la limite est fixé à 20." );
  3.   return false;
  4. } else if (tab==0) {
  5.   alert("Veuillez sélectionné au moins un portefeuille.Merci." );
  6.   return false;
  7. } else {
  8.   selectionElementsListe(document.forms.formulaire.liste2,'true');
  9.   document.forms.formulaire.submit();
  10.   return true;
  11. }


 
Passons maintenant à l'utilisation de ta fonction :
 - le nom est mal choisi : le but n'est pas de compter le nombre d'éléments sélectionnés mais de vérifier que ce nombre est correct => verifSelection
 - On l'a dit et répété on ne doit pas mettre de javascript dans le href de <a>
 - Rappel sur onClick : si le code javasript dans onClick return false => href n'est pris en compte Cf. un post précedent
 - D'ailleurs, pourquoi utiliser un <a> ici, tu n'as qu'a mettre un <input type="submit"> et lancer la vérif en ajoutant un attribut onSubmit au <form>
 
En résumé :

Code :
  1. //Fonction qui compte le nombre d'elements de la liste
  2. function verifSelection(liste) {
  3. var tab = liste.options.length;
  4. if (tab>20) {
  5.   alert("Vous avez sélectionné trop de portefeuilles, la limite est fixé à 20.";
  6.   // bloquage de l'evenement => le formulaire ne sera pas lancé
  7.   return false;
  8. } else if (tab==0) {
  9.   alert("Veuillez sélectionné au moins un portefeuille.Merci.";
  10.   // bloquage de l'evenement => le formulaire ne sera pas lancé
  11.   return false;
  12. } else {
  13.   selectionElementsListe(document.forms.formulaire.liste2,'true';
  14.   // maintenant qu'on utilise onSubmit, il ne faut PAS le faire ici
  15.   // document.forms.formulaire.submit();
  16.   return true;
  17. }


 

Code :
  1. <form name="formulaire" ... onSubmit="return verifSelection(this.liste2);">
  2. ...
  3.   <input type="submit" value="Valider"/>
  4.   <input type="button" value="Fermer" onClick="window.close();"> <!-- bouton sans validation du formulaire -->
  5. ...


Message édité par bidem le 30-11-2005 à 11:08:45
n°1255905
neo00neo
Posté le 30-11-2005 à 11:18:26  profilanswer
 

Je te remercie de ton aide, et de tes idées.
Si j'utilise un lien c'est pour rester cohérent avec l'ensemble du projet. En effet, le mien s'intègre dans une ensemble, c'est pour cela que je veux garderles hyperliens. En tout cas merci, je vais essayer de retoucher ma fonction selectionElementsListe. Et la rajouter dans verifSelection.

n°1255908
neo00neo
Posté le 30-11-2005 à 11:29:46  profilanswer
 

Donc ça marche, j'ai remplacé ma <a...></a>, par des <span></span>, je vais modifier le design de la souris et du lien au survol et c'est bon ! Merci de votre aide !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Problème de submit sous IE

 

Sujets relatifs
[php] Programmation objet, probleme d'inclusionj'ai un probleme avec un exo en matlab
Exécution à distance, problème de répertoireProblème de bordure en HTML
Problème de Copie (StreamReader)[CSS] Problème float IE Mac
[Resolu] Probleme Register_GlobalsProbleme declaration fonction
Problème avec la commande ISDATEproblème sous mozilla
Plus de sujets relatifs à : Problème de submit sous IE


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR