Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/03/2011, 04h24   #1
Nouveau Membre du Club
 
Inscription : mars 2008
Messages : 84
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : mars 2008
Messages : 84
Points : 30
Points : 30
Par défaut confirm() qui ne renvoie jamais true ?

Bonjour, j'ai plusieurs submit dans un formulaire, et souhaites ajouter un message de confirmation pour chaque sorte de submit.

J'ai fait ceci :

Cependant et je ne comprend pas pourquoi, (je ne sais pas encore debuguer en js), j'ai beau cliquer sur annuler ou fermer le message de confirmation, le formulaire s'exécute.

J'en viens a me dire que quelque chose m'échappe mais je ne vois pas quoi.

Si vous avez une idée, merci beaucoup.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
<script type="text/javascript">
 
// mes différent submits 
xSA = document.getElementsByName("SupprimerAnnonce");
xMA = document.getElementsByName("ModifierAnnonce");
xd_l = document.getElementsByName("del_img");
 
 
//boucle pour parcourir le tableau des 'submit SupprimerAnnonce'
for( var x=0; x < xSA.length; x++ ) {
 
//si le submit est cliqué, alors le message de confirmation apparait
xSA[x].onclick = function(){
 
// j'ai beau cliquer sur annuler, le submit() est envoyé
if(confirm("Etes vous sur de vouloir supprimer l'annonce ?")){
document.getElementById('SA').submit();
}
}
}
 
 
for( var x=0; x < xMA.length; x++ ) {
xMA[x].onclick = function(){
    if(confirm("Etes vous sur de vouloir modifier l'annonce ?")){
        document.getElementById('MA').submit();
    }
}
}
 
for( var x=0; x < xd_l.length; x++ ) {
xd_l[x].onclick = function(){
    if(confirm("Etes vous sur de vouloir supprimer la photo ?")){
     document.getElementById('d_l').submit();
    }
 
}
}
 
</script>
Voilà une partie formulaire :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
<form  id="modif_ann" method="post" action="index.php?page=Modification" enctype="multipart/form-data">
<fieldset>
<legend>Annonce n°<?php echo htmlentities($annonce['id_ann']); ?></legend>
 
 
<div class="container_input">
<input type="submit" id="MA" name="ModifierAnnonce" value="Modifier Annonce" />
<input type="submit" id="SA" name="SupprimerAnnonce" value="Supprimer Annonce" />
</div>
 
<label for="tel">Tel</label>
<input type ="text" name="tel" size="30" maxlength="40"
       value="<?php echo htmlentities($annonce['tel']); ?>"/>
<br/>
 
</fieldset>
 
<?php   if (htmlentities($annonce['nbr_img']) > 0) {
?>
 
<label for="image1">Photo principal:</label>
<img src="../img/pic/1/<?php echo htmlentities($annonce['url_img']); ?>.jpg"  alt="aperçu de la photo 1" />
<br/>
<input type="file" class="btn_upload" name="image1"/>
<input type="submit" id="MA" name="ModifierAnnonce" value="changer la photo principal"/>
<input type="submit" id="d_l" name="del_img" value="supprimer la photo principal"/>
<br/>
</fieldset>
<?php
}
?>
 
<div class="container_input">
 
<input type="submit" id="MA" name="ModifierAnnonce" value="Modifier Annonce" />
 
<input type="submit" id ="SA" name="SupprimerAnnonce" value="Supprimer Annonce" />
 
</div>
</form>
Drone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2011, 07h44   #2
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 933
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 933
Points : 4 755
Points : 4 755
Bonjour,
Code :
document.getElementById('SA').submit();
fait référence au bouton submit et non à la FORM

Pour annuler l'envoi d'un formulaire, il faut mettre un return false sur l'événement onsubmit de la FORM.

Revoir la structure du document qui ne semble pas valide, mais cela est accessoire...
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2011, 11h42   #3
Expert Confirmé Sénior
 
Avatar de RomainVALERI
 
Homme Romain VALERI
POOête
Inscription : avril 2008
Messages : 2 572
Détails du profil
Informations personnelles :
Nom : Homme Romain VALERI
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : POOête

Informations forums :
Inscription : avril 2008
Messages : 2 572
Points : 4 073
Points : 4 073
Citation:
Envoyé par Drone Voir le message
(je ne sais pas encore debuguer en js)
>>> urgent <<<
__________________

...pour les linguistes et les curieux >>> générateur de phrases aléatoires

__________________
RomainVALERI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2011, 12h49   #4
Nouveau Membre du Club
 
Inscription : mars 2008
Messages : 84
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : mars 2008
Messages : 84
Points : 30
Points : 30
Bonjour,

>>NoSmoking

Merci ! En fait le simple else {return false} à fonctionné
En effet je ne passe pas par un onsubmit car je me dis et vous allez peut être me prouver le contraire que dans l'intitulé du form, le onsubmit ne sera égal qu'a une seul fonction, donc comment faire pour savoir si j'ai cliqué sur tel bouton, et suivant le bouton, afficher le message approprié ?

Enfin voilà ma solution corrigée :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 
<script type="text/javascript">
xSA = document.getElementsByName("SupprimerAnnonce");
for( var x=0; x < xSA.length; x++ ) {
xSA[x].onclick = function(){
    if(confirm("Etes vous sur de vouloir supprimer l'annonce ?")){
     document.getElementById('SA').submit();
    }
    else {
         return false;
     }
}
}
xMA = document.getElementsByName("ModifierAnnonce");
for( var x=0; x < xMA.length; x++ ) {
xMA[x].onclick = function(){
    if(confirm("Etes vous sur de vouloir modifier l'annonce ?")){
        document.getElementById('MA').submit();
    }
    else {
        return false;
    }
}
}
 
xd_l = document.getElementsByName("del_img");
for( var x=0; x < xd_l.length; x++ ) {
xd_l[x].onclick = function(){
    if(confirm("Etes vous sur de vouloir supprimer la photo ?")){
     document.getElementById('d_l').submit();
     }
     else {
         return false;
     }
}
}
</script>
J'aimerais savoir ce qui ne vous parait pas valide dans la structure, même si c'est accessoire, cela m'intéresse fortement merci .

>>RomainVALERI

Merci pour ce lien, je possède Firebug, et n'ayant pas eu encore besoin de deboguer du JS je ne me suis pas encore servis de la partie script, mais contrairement à ce que je pensais (j'allais chercher un tuto) le fonctionnement est simple a comprendre, merci .
Drone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2011, 13h13   #5
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 933
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 933
Points : 4 755
Points : 4 755
j'ai noté un </fieldset> sans ouverture de balise <fieldset>
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2011, 13h24   #6
Nouveau Membre du Club
 
Inscription : mars 2008
Messages : 84
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : mars 2008
Messages : 84
Points : 30
Points : 30
Ah d'accord, merci

En fait cette erreur est due au fait que je n'ai voulu mettre que la partie 'intéressante' du formulaire pour mon problème, et donc cette balise ouvrante à été omise dans mes copiés collés mais elle existe bien dans mon formulaire ^^.

Merci, je clôture ce topic, l'esprit en paix .
Drone est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h26.


 
 
 
 
Partenaires

Hébergement Web