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

JavaScript Discussion :

modification du action d'un formulaire


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    512
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2007
    Messages : 512
    Points : 97
    Points
    97
    Par défaut modification du action d'un formulaire
    Bonjour,

    je reprends la maintenance d'un site qui a été développé par quelqu'un d'autre. Une nouvelle fonctionnalité ma été demandée, seul soucis c'est que de la façon dont cela a été codéje ne peux pas le faire da façon simple...

    je souhaiterais que au moment ou une case à cocher est checked une fonction javascript vienne modifier le action d'un formulaire ainsi que la valeur d'un submit.
    voici mon checkbox:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="checkbox" name="cascade" value="OK" onclick="whenChecked()">Réservation en cascade</input>
    voici ma fonction JS

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function whenChecked()
    {
    if(document.cascade.checked==true)
    {
    document.form_valider_visio.action="index.php?_id_page=outils/transat/resa_cascade.php";
    document.form_valider_visio.submit.value="Valider la réservation en cascade";}
     
    }
    et cela ne fonctionne pas.

    Merci de votre aide.

  2. #2
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Bonjour,

    Il faudrait peut-être le code de déclaration du formulaire pour voir si les noms concordent. Mais par contre ceci me laisse perplexe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.form_valider_visio.submit.value="Valider la réservation en cascade";
    Vous voulez changer le texte affiché sur le bouton ? Le bouton ne s'appelle pas "submit" quand même ? Ce n'est pas un bon nom car c'est un mot réservé.

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(document.cascade.checked==true)
    Tu ne peux pas accéder directement à un élément
    Il faut passer par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.nom_formulaire.nom_element
    Ceci dit, le plus simple dans ton cas serait de transmettre directement ton input :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" name="cascade" value="OK" onclick="whenChecked(this)">Réservation en cascade</input>
    Puis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function whenChecked(eltInput)
    {
    if(eltInput.checked)
    {
    eltInput.form.action="index.php?_id_page=outils/transat/resa_cascade.php";
    eltInput.form.choisi_un_autre_nom.value="Valider la réservation en cascade";}
     
    }
    En pensant bien au passage que nomme un input de type submit "submit" est maladroit et cause des erreurs, vu qu'il s'agit aussi d'une propriété d'un formulaire !

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    512
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2007
    Messages : 512
    Points : 97
    Points
    97
    Par défaut
    voici un de mes formulaires dont il faut que je modifie le action

    Code php : 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
     
    <form action="index.php?_id_page=<?php echo $_id_page; ?>" method="post" onSubmit="return Valider_resa_visio('<?php echo $liste_visio_toJS."','".date("Y-m-d",$date); ?>');" id="form_valider_visio" name="formValiderResaVisio">
    			<input type="hidden" id="_liste_resa_visio" name="_liste_resa_visio" value="" />
    			<br />
    			<p>Sélectionnez l'agent responsable de la réservation : <em>(champ obligatoire)</em><p>			
    			<span class="spanDecal">			
    				<select name="_id_agent_resp_resa_visio" id="_id_agent_resp_resa_visio" class="inputRecherche12pxSelect largeurSelectRecherche"><!--Liste des agents pour connaitre pour qui est la reservation -->
    					<option selected="selected" value="-1" />
    					<?php
    					if($ok)while($tab_agent = mysql_fetch_assoc($liste_agent))
    							echo '<option value="'.$tab_agent["id_agent"].'">'.formater_nom($tab_agent["nom"].' '.$tab_agent["prenom"]).'</option>';
    					?>
    				</select>
    			</span>
    			<p>Veuillez saisir un motif pour votre réservation : <em>(champ obligatoire)</em><p>
     
    			<textarea id="id_text_area_justificatif_visio" name="text_justification_visio" class="inputRecherche12pxSelect" rows="2" cols="111" onKeyUp="limite(this,255);" onKeyDown="limite(this,255);"></textarea>
    			<p>
    				<div align="center"><input name="valider_resa" type="submit" value="Valider la réservation" class="btntxt"/></div>
    			</p>
    		</form>

    mais peut-être que c'est mon checkbox qui est mal placé

  5. #5
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    En tenant compte de ce qui a été dit précédemment, le nom serait donc alors:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.form.valider_resa.value = "...";

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    512
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2007
    Messages : 512
    Points : 97
    Points
    97
    Par défaut
    Vous êtes vraiement trop fort sur ce forum!
    ça marche!

    Merci beaucoup!

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    512
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2007
    Messages : 512
    Points : 97
    Points
    97
    Par défaut
    Euh petite question,
    imaginons que l'utilisateur se soit trompé et qu'il décoche.comment je fais pour que les modifs que je fais s'annulent?

  8. #8
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Dans votre fonction Javascript, vous ajoutez un else au if et vous y remettez les anciennes valeurs.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    512
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2007
    Messages : 512
    Points : 97
    Points
    97
    Par défaut
    ah je crois que j'ai trouvé en faisant tout simplement else dans ma fonction JS

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    512
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2007
    Messages : 512
    Points : 97
    Points
    97
    Par défaut
    oui c'est ça désolé j'avais pas vu le nouveau message merci

  11. #11
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    De rien.

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

Discussions similaires

  1. Modification d'une action d'un formulaire
    Par ballantine's dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 15/01/2010, 11h57
  2. Changer l'action d'un formulaire en cliquant sur un radio
    Par yoyot dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/10/2005, 13h59
  3. [STRUTS] Problème Name+Action d'un Formulaire
    Par javaSudOuest dans le forum Struts 1
    Réponses: 6
    Dernier message: 23/09/2005, 17h28
  4. modifer un seul des sous formulaire
    Par hades666evil dans le forum Access
    Réponses: 6
    Dernier message: 12/09/2005, 20h02
  5. Action sur sous-formulaire filtré
    Par thevenix dans le forum IHM
    Réponses: 4
    Dernier message: 20/06/2005, 00h39

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