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

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  empécher l'éxécution d'un onChange 1 fois, dans un form

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

empécher l'éxécution d'un onChange 1 fois, dans un form

n°533393
brisssou
8-/
Posté le 07-10-2003 à 16:45:02  profilanswer
 

en fait, quand la page se REcharge avec les anciens paramètres, le fait de re mettre les paramètres à 'selected' lance le onChange qui appelle une remise à zéro d'une dropdown list où l'on viend de spécifier l'élément 'selected'... ça pose soucis...
 
voià un bout du code, histoire d'être plus clair :

Code :
  1. <form name="filter" method="get" action="<%=URLRoot%>/GenAccountingMachShipmentServlet">
  2.             <tr>
  3.               <td height="31" valign="top" class="title1"> Status: &#160 &#160
  4.               </td>
  5.               <td></td>
  6.               <td valign="top">
  7.                 <select name="selectStatus" size="1" onChange="javascript:updateForm()">
  8.                   <option value="SHIPPED TO DS" <%=isSelected("SHIPPED TO DS", selectedStatus)%>>SHIPPED
  9.                   TO DS</option>
  10.                   <option value="ASSY LINE" <%=isSelected("ASSY LINE", selectedStatus)%>>ASSY
  11.                   LINE</option>
  12.                 </select>
  13.               </td>
  14.               <td></td>
  15.             </tr>
  16.             <tr>
  17.               <td height="33" valign="top" width="296" class="title1"> Dealer
  18.                 name: &#160 &#160 </td>
  19.               <td width="57"></td>
  20.               <td valign="top" width="163">
  21.                 <select name="selectTailorCd" size="1" class="selectCell2">
  22.                   <option value="ALL" <%=isSelected("ALL",selectedTailorCd)%> >ALL</option>
  23.                   <%
  24.    Enumeration enTail = vecTail.elements();
  25.    while (enTail.hasMoreElements()){
  26.       Tailor myTailor = (Tailor)enTail.nextElement();
  27.        %>
  28.                   <option value="<%=myTailor.getTailorCd()%>" <%=isSelected(myTailor.getTailorCd().substring(0,4), selectedTailorCd)%>><%=myTailor.getTailorNameAbbr()%></option>
  29.                   <%}%>
  30.                 </select>
  31.               </td>
  32.               <td width="154"></td>
  33.             </tr>


 
si c'est encore pas clair, demandez...


Message édité par brisssou le 07-10-2003 à 16:45:36

---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
mood
Publicité
Posté le 07-10-2003 à 16:45:02  profilanswer
 

n°533404
jagstang
Pa Capona ಠ_ಠ
Posté le 07-10-2003 à 16:54:37  profilanswer
 

essaie voir de faire un onClick au lieu de Onchange.


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°533413
brisssou
8-/
Posté le 07-10-2003 à 17:00:13  profilanswer
 

ça ne fonctionne pas apparemment... :??:


Message édité par brisssou le 07-10-2003 à 17:09:10

---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°533421
brisssou
8-/
Posté le 07-10-2003 à 17:14:14  profilanswer
 

j'y avait cru pourtant...


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°533523
MagicBuzz
Posté le 07-10-2003 à 19:45:10  profilanswer
 

Non non, onclick ça marchera pas.
 
Le plus simple, bidouille insinde, consiste à créer une variable publique dans le document (ou ajouter dynamiquement une propriété à ton select pour faire plus propre) qui te permettra de checker si tu peux ou non faire le onchange.
 
Exemple :
 

<body onload="javascript:document.myForm.mySelect.canChange = false;document.myForm.mySelect.selectedIndex = 2;">
   <form name="myForm">
      <select name="mySelect" onchange="(this.canChange)?alert(this.selectedIndex):this.canChange = true;">
          <option value="1">1</option>
          <option value="2">2</option>
          <option value="3">3</option>
          <option value="4">4</option>
          <option value="5">5</option>
      </select>
   </form>
</body>


 
Une autre solution plus sexy consiste à ne pas écrire "onchange" dans ta balise <select> mais de le créer à la volée depuis le script JavaScript, à la fin du onload du body. Mais j'ai pas la syntaxe en tête, et vu que l'autre solution marche aussi...


Message édité par MagicBuzz le 07-10-2003 à 19:45:27

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

  empécher l'éxécution d'un onChange 1 fois, dans un form

 

Sujets relatifs
Execution d'un OCX sous IE6[HTML][PHP] Form input=file et sélection de répertoire source
Jakarta Tomcat : probleme d'execution[VB6]Créer une frame à part, et la charger dans la Form par la suite
min, max d'éxécutionEmpecher l'arret du chargement des images lors d'un click sur la page?
Combiner un Form et une pop upsql : plusieurs fois le meme champ dans un select ?
Pb exécution requete2 form côte à côte, possible sans table ?
Plus de sujets relatifs à : empécher l'éxécution d'un onChange 1 fois, dans un form


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