Ajout dynamique d'input (incompatible)

Ajout dynamique d'input (incompatible) - HTML/CSS - Programmation

Marsh Posté le 07-06-2006 à 10:19:13    

Salut,
Pour mon stage je fais un site et je voudrais faire un ajout dynamique de balise input dans un formulaire.
Je l'ai fais et cela marche sous IE.
Mais sous mozilla lors de la validation de mon formulaire il ne passe pas le nom de la balise input avec la valeur.
J'ai regardé dans le DOMi de mozilla après un ajout de balise input et tout est nickel.(evidemment ca marche sous IE)
Pourquoi dans mon get je ne retrouve pas mon input??
 
voici le code JS:
 

Code :
  1. var nombreChamp = 0;
  2. function AddRemoveInput(what)
  3. {
  4.     if(what == 'Add')
  5.     {
  6.         var elem = document.createElement("INPUT" );
  7.        elem.setAttribute("type", "text" );
  8.        elem.setAttribute("id", "requirement"+nombreChamp );
  9.        elem.setAttribute("name", "requirement"+nombreChamp );
  10.        elem.setAttribute("value", "" );
  11.         document.getElementById("input_requirement" ).insertBefore(elem, document.getElementById("fin" ));
  12.         document.getElementById("input_requirement" ).insertBefore(document.createElement("br" ), document.getElementById("fin" ));
  13.         nombreChamp++;
  14.     }
  15.     else if(what == 'Remove' && nombreChamp > 0)
  16.     {
  17.         var childlast = document.getElementById("input_requirement" ).lastChild;
  18.         document.getElementById("input_requirement" ).removeChild(childlast);
  19.         nombreChamp--;
  20.     }
  21.     document.getElementById("nb_requirement" ).value = nombreChamp;
  22. }


 
et le code dans mon forumlaire:

Code :
  1. <tr>
  2. <td id="requirement">Requirement document reference</td>
  3. <td id="input_requirement" colspan="2">
  4. <?php
  5. $sql = "SELECT ID_requirement_doc FROM $prefix"."task_requirement WHERE ID_task='".$result['ID']."';";
  6. $done2 = mssql_query($sql);
  7. $i=0;
  8. while($result2 = mssql_fetch_array($done2))
  9. {
  10.   echo "<input type='text' name='requirement_base$i' value='".stripslashes($result2['ID_requirement_doc'])."' />"."<br />"; 
  11. $i++;
  12. }
  13. ?>
  14. //la ligne magique qui rajoute des balise inputs    
  15.    <a id="fin" href="#" onClick="AddRemoveInput('Add'); ">Add requirement document</a>
  16. </td>
  17. </tr>

Reply

Marsh Posté le 07-06-2006 à 10:19:13   

Reply

Marsh Posté le 07-06-2006 à 10:28:58    

Ta fonction semble "correcte" ( bien que j'aurais fait 2/3 trucs differement) d'ailleurs elle fonctionne.
C'est plus ton code html que je trouve surprenant , ou sont les balises form?

Reply

Marsh Posté le 07-06-2006 à 10:43:08    

anapajari a écrit :

Ta fonction semble "correcte" ( bien que j'aurais fait 2/3 trucs differement) d'ailleurs elle fonctionne.
C'est plus ton code html que je trouve surprenant , ou sont les balises form?


 
 
le tout est bien sur dans une balise form:
 

Code :
  1. <table border="1" class="vignettes">
  2. <form id="leform" method="get" action="./traitment/traitments_form_edit.php">
  3.  <tr><td class="bouton" colspan="2">Complete this form</td></tr>
  4. <input type="hidden" id="nb_requirement" name="nb_requirement" value="0" />
  5. ....
  6. //le code juste avant
  7. </form>
  8. </table>


 
Je n'ai pas tout mis car c'est un peu long.
 
 
Edit: Sinon dans le DOMi il y a un #text qui se glisse entre les balise input créé par la boucle while et l'ajout de la nouvelle balise par JS.
Mais en remontant les previousSibling il y a bien la balise d'avant.


Message édité par Toby14 le 07-06-2006 à 10:59:02
Reply

Marsh Posté le 07-06-2006 à 11:56:42    

Bon j'ai une solution, enlever le table et mettre des fieldset, label. Ca a l'air de passer.

Reply

Marsh Posté le 08-01-2010 à 17:30:09    

Toby14 a écrit :

Bon j'ai une solution, enlever le table et mettre des fieldset, label. Ca a l'air de passer.


 :love:  :pt1cable:  :jap:  
Merci beaucoup d'avoir poster le bilan de tes recherches !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed