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 :

plusieurs boutons, un prompt


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 6
    Par défaut plusieurs boutons, un prompt
    Bonjour à tous,
    nouvelle arrivée parmi vous, et en recherche d'aide

    mon petit code consiste à créer des boutons de désabonnement d'une façon générique (selon le nombre de produis auxquels on est abonné)...
    En cliquant qur un de ces boutons, un code javascript est appelé et affiche un prompt dans lequel on devra saisir le raison de désabonnement.

    Le problème est le suivant : seul le premier bouton est reconnu par les modification faite dans la fonction javascript.

    Voici le code (il est appelé chaque fois qu'on crée un bouton) :
    Code : 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
     
    <script type="text/javascript">
     
    function Confirm_unsubscription() {
    	var saisie = prompt("Voulez vous vraiment annuler l'{SUBSCRIPTION_LABEL}",'raison de désabonnment');
    	if (saisie!=null) {
    		document.forms["frm_crmaction"].frm_action_raison_Unsubscribe.value = saisie;
    		document.forms["frm_crmaction"].submit();
    	}
    }
    </script>
     
    <form name="frm_crmaction" id="frm_crmaction" onSubmit="" method="POST" target="">
    <input type=hidden name="frm_action_subscriptionid" value="{SUBSCRIPTION_ID}">
    <input type=hidden name="frm_action_packid" value="{SUBSCRIPTION_PACKID}">
    <input type=hidden name="frm_action_raison_Unsubscribe" value="unknown raison">
    <input type=submit value="Unsubscribe to {SUBSCRIPTION_LABEL} " name="frm_crmaction_submit" id="frm_crmaction_submit" OnClick="Confirm_unsubscription();">
    </form>
    Merci bien d'avance.

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    2 points :car prompt() renvoie true ou false.
    et
    Code : 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
    <script type="text/javascript">
    
    function Confirm_unsubscription() {
    var saisie = prompt("Voulez vous vraiment annuler l'{SUBSCRIPTION_LABEL}",'raison de désabonnment');
    if (saisie) {
    document.forms["frm_crmaction"].frm_action_raison_Unsubscribe.value = saisie;
    }
    return saisie;
    }
    </script>
    
    <form name="frm_crmaction" id="frm_crmaction" onsubmit="return Confirm_unsubscription();" method="POST" target="">
    <input type=hidden name="frm_action_subscriptionid" value="{SUBSCRIPTION_ID}">
    <input type=hidden name="frm_action_packid" value="{SUBSCRIPTION_PACKID}">
    <input type=hidden name="frm_action_raison_Unsubscribe" value="unknown raison">
    <input type=submit value="Unsubscribe to {SUBSCRIPTION_LABEL} " name="frm_crmaction_submit" id="frm_crmaction_submit">
    </form>
    Il ne faut pas faire les contrôles de formulaires sur le onclick du bouton submit, mais sur le onsubmit du form (qui est prévu pour)

    A+

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 6
    Par défaut Re : plusieurs boutons, un prompt
    Merci bien pour ta réponse E.Bzz
    j'étais agréablement surprise par une réponse si rapide

    malheureusement...ça ne marche toujours pas

    Pour commencer :
    j'avais trouvé sur le net que prompt retourne null si rien n'est saisie, sinon, il retourne le message saisie...et justement j'en ai besoin de ce message pour l'affecter au champ 'rm_action_raison_Unsubscribe'...
    En fait, même après avoir fait les modifications que t'as signalé , j'ai l'impression que à partit du second bouton, la ligne " document.forms["frm_crmaction"].frm_action_raison_unsubscribe.value = saisie;" ne sert plus à rien, la valeur du champ n'est pas modifiée.

    et encore Merci

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par nawara Voir le message
    j'avais trouvé sur le net que prompt retourne null si rien n'est saisie, sinon, il retourne le message saisie...et justement j'en ai besoin de ce message pour l'affecter au champ 'rm_action_raison_Unsubscribe'...
    Oui, c'est ma faute : j'ai confondu prompt() et confirm()
    (sûrement à cause du nom de ta fonction)
    Alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <script type="text/javascript">
     
    function Confirm_unsubscription() {
    	var saisie = prompt("Voulez vous vraiment annuler l'{SUBSCRIPTION_LABEL}",'raison de désabonnment');
    	if (saisie!=null) {
    		document.forms["frm_crmaction"].elements['frm_action_raison_Unsubscribe'].value = saisie;
    return true;
    	}
    else return false;
    }</script>
    Les autres modifications (onsubmit="...") sont à conserver.

    A+

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 6
    Par défaut
    re bonjour
    c'est encore moi

    et encore une fois pour te dire : ça ne marche pas
    En fait, :
    document.forms["frm_crmaction"].elements['frm_action_raison_Unsubscribe'].value
    document.forms["frm_crmaction"].frm_action_raison_Unsubscribe.value
    document.forms["frm_crmaction"].elements[2].value
    sont trois façons légitimes et donnent le même résultat
    D'ailleurs, avec le premier bouton ça modifie bien le champ, mais ça foire à partir du second bouton
    j'ai même essayé :
    var obj = document.getElementByName("frm_action_raison_unsubscribe")
    obj.value = "meassage";

    pareil, le premier bouton nickel, le reste vide!
    à mon avis, ça devrai être un problème d'identification, le javascript assigne ces champs au premier bouton et non pas à celui cliqué...je ne sais pas

    je regarde encore, si t'as des idées...surtout n'hésite pas
    Merci

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par nawara Voir le message
    document.forms["frm_crmaction"].elements['frm_action_raison_Unsubscribe'].value
    document.forms["frm_crmaction"].frm_action_raison_Unsubscribe.value
    document.forms["frm_crmaction"].elements[2].value
    sont trois façons légitimes et donnent le même résultat
    Seule la 1° est recommandée par le W3C.
    La 2° est obsolète (de même que document.name_du_form....)
    La 3° est ambigüe car ce n'est pas toi qui contrôle l'ordre dans lequel sont géré ("classé") les éléments.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var obj = document.getElementByName("frm_action_raison_unsubscribe")
    obj.value = "meassage";
    Erreur de syntaxe ==>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var obj = document.getElementsByName("frm_action_raison_unsubscribe")[0];
    obj.value = "meassage";
    Est-ce que, par hasard, ton <form> serait dupliquée dans ta page ?
    Auquel cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms["frm_crmaction"].elements['frm_action_raison_Unsubscribe']
    te renverrait un tableau d'éléments au lieu de l'élément attendu, et du coup, ton code tel qu'écrit, ne peut pas fonctionner ...

    A+

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

Discussions similaires

  1. [MySQL] plusieurs bouton dans 1 form
    Par vincedjs dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 16/02/2006, 09h40
  2. [VB.NET]Comment gérer plusieurs boutons en 1 méthode Click ?
    Par Cydreav dans le forum Windows Forms
    Réponses: 4
    Dernier message: 05/02/2006, 23h53
  3. Gérer plusieur bouton pour un meme formulaire
    Par Phenomenium dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 30/01/2006, 13h08
  4. Plusieurs boutons dans un formulaire
    Par kcizth dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 03/01/2006, 14h42
  5. Acesskey dynamique dans un form à plusieurs boutons submit ?
    Par boteha dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 05/09/2005, 17h54

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