porciner
Messages postés56Date d'inscriptionmardi 22 juin 2004StatutMembreDernière intervention18 avril 2008
-
5 juin 2007 à 13:03
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 2013
-
7 juin 2007 à 13:31
Bonjour,
Lorsque je crée un formulaire, j'ajoute toujours ce morceau de javascript dans la balise <form> :
onSubmit="post.disabled='true';"
Ceci permet au bouton de validation (post) d'être désactivé à la soumission du formulaire.
Ma question est donc simple, je voudrais savoir s'il existe un moyen de faire cela avec un script en "haut de page" sans avoir à placer mon code dans chaque balise <form>.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 5 juin 2007 à 14:11
Bonjour,
réalisable...
window.onload=function() { traitement quand la page est chargée }
dans ce traitement :
document.forms.length donne le nombre de formulaires
et
document.forms[indice] accède à chaque formulaire
ensuite soit
_ utiliser le name du submit, ou mieux ( car si plusieurs
bouton submit dans le formulaire ? ) regarder tous
les éléments du formulaire et traiter les input submit
_ ajouter la fonction onsubmit au formulaire
...
mais... que fait-on si un contrôle préalable est requis avant l'envoi ?
on a un truc du style : <form ... onsubmit="return(controle());"...>
on ne peux pas,là, invalider le bouton submit avant
le retour de la function controle...
je ne vois pas comment faire, enfin, pas sans plus de réflexion.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 5 juin 2007 à 17:22
pourquoi ne pas faire comme tu nous le montrait...
appliquer à toutes les form ?
document.forms[i].post.disabled='true';
pas de .submit dans cette histoire.
<hr /> Cordialement Bul [mon Site] [M'écrire]<hr />n'empêche que je vais me pencher sur un truc plus général
( si fonction sur submit ou pas )
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 6 juin 2007 à 06:54
au fait... si tu fais ça, ça va invalider les boutons submit, rien de plus
window.onload=function()
{ for ( var f=0;f<document.forms.length;f++ )
{ document.forms[f].poster.onclick=function()
{ this.disabled=true;
}
}
}
ça suppose _ que tous les boutons submit aient la name="poster"
_ qu'ils n'ont pas déjà un onclick
_ que, s'il y a un contrôle dans le onsubmit, en cas de non envoi,
il faut rendre accessible ce bouton submit
_ ...
il faudrait aller un peu plus loin.
ne pas utiliser le name du bouton
si une fonction existe déjà, la conserver
je ne sais plus qui avait donner un exemple pour ça
je ne retrouve pas, et je n'ai pas noté.
...
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 6 juin 2007 à 12:54
>> avec le nom "post"
c'est peut-être uniquement ça ????
je me cite ?
ça suppose _ que tous les boutons submit aient la name="poster"
parce que :
... { document.forms[f].poster.onclick=function() ...
j'éviterais un name comme post ( connu du javascript, du html... )
porciner
Messages postés56Date d'inscriptionmardi 22 juin 2004StatutMembreDernière intervention18 avril 2008 6 juin 2007 à 13:19
Vraiment desolé, tu as raison c'est une rreur de ma part d'inattention...
Alors il reste plus qu'a faire en sorte que ça se descative à la soumission du formulaire car actuellement on clique dessus, ça se desactive mais le formulaire n'est pas envoyé.
Sinon j'ai essayé avec un "input" avec le nom "poster" et pourtant, c'est toujours la même chose, le bouton se désactive mais ne formulaire n'est pas envoyé.
Ton script est fait pour ne pas bloquer l'envoi des formulaires ?
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 7 juin 2007 à 10:05
je n'ai pas dit que la balise button n'existait pas.
j'ai dit que type= "submit" pour une balise button n'existait pas.
et si je me trompe : j'ai dit aussi... que le script cherchait
>>mais ne formulaire n'est pas envoyé.
il te reste une (des) erreur(s).
peut-être ailleurs ?
mais sans plus de données, je ne saurais répondre
( le formulaire est-il envoyé sans le script ? )
au fait ... :
|÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷|÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷|÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷|
| Avec | et mieux : <label style ="color: rgb(0, 128, 0);">Télécharger</label> |
|÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷|÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷|÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷|
|<label style="color: rgb(128, 0, 0);">FireFox</label> |regarder la "console d'erreurs" | FireBug |
| | Outils / Console d'erreurs | |
|÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷|÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷|÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷|
|<label style="color: rgb(128, 0, 0);">Internet Explorer</label>|activer le deboggage : utils/options Ile Debogger IE |
| | dans la liste, sous "Navigation" : décocher | |
| | ° Afficher une notification de chaque erreur de script | |
| | ° Désactiver le débogage de Scripts (autres applications)| |
| | ° Désactiver le débogage de Scripts (Internet Explorer) | |
|÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷|÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷|÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷|
>>Ton script est fait pour ne pas bloquer l'envoi des formulaires ?
? tu l'as , donc tu vois.
porciner
Messages postés56Date d'inscriptionmardi 22 juin 2004StatutMembreDernière intervention18 avril 2008 7 juin 2007 à 10:51
<form name="F1"
onsubmit="alert('onsubmit du form F1');"
action="test.html">
J'ai essayé en utilisant exclusivement ton zip en modifiant juste l'action du formulaire dans ta page html et rien à faire, ça ne marche pas, l'action n'est pas executée...
En ce qui concerne l'élément "button", sur le lien que je t'ai donné, ils disent que l'attrubut "type" peut etre de type "submit".
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 7 juin 2007 à 13:31
crotte de bique ! dieu me tripote !
je viens de tenter, et ... le chargement de la page ne se fait pas !
remplaces dans le .js
les 2 this.disabled=true;
par this.style.display="none";
( je vais mettre à jour la source )
alors ça... disabled invalide le chargement ?
pas si c'est du javascript dans l'action ?
faut qu'on m'explique !
il faut probablement un setTimeout avant de mettre disabled=true ?
je te soupçonnais de je ne sais quoi...
et je n'avais pas essayé de charger une nouvelle page
persuadé que si le javascript fonctionnait dasn l'action ...