cs_bultez
Messages postés13616Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 3 juil. 2007 à 15:33
Bonjour,
tu ne dois pas faire les choses comme il faut.
mais sans billes ? comment te dire ce qui ne va pas ?
le principe général quand même :
<form action="page à appeler"
onsubmit="javascript possible (**) " ...>
...les champs de saisie utiles....
<!-- pas de click : en général, c'est parfaitement inutile -->
</form>
(**) en général, ce sera un truc du style onsubmit="return(controle());"
controle, la function retournera true pour envoyer le formulaire,
ou false ( en cas d'erreur par exemple ) pour ne pas le faire.
<hr /> Cordialement Bul [mon Site] [M'écrire]<hr />je sias bien que généralement c'est absurde de généraliser.
Manu94600
Messages postés107Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention20 février 2008 3 juil. 2007 à 16:02
Merci de ta réactivitée ;)
Mais je n'ai toujours pas saisie. Alors je réexplique mon problème :
J'ai un javascript qui modifie la fonction submit() du formulaire, pour ensuite faire le traitement souhaité.
function mySubmit() {}
document.forms[0].submit = mySubmit;
Au niveau de mon code html, j'ai juste :
<form action="maPage.aspx" id="namePage">
</form>
Et donc en debuggant, il ne passe jamais dans ma fonction, et donc je me demandais comment le bouton submit soumettait le formulaire (est ce qu'il fait un document.forms[0].submit() ou pas ??)
De plus j'ai un autre souci, c'est que sous firefox il me génère une erreur javascript.
Manu94600
Messages postés107Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention20 février 2008 4 juil. 2007 à 09:14
Ok, voilà j'ai trouvé comment faire pour le premier point.
Je suis mal exprimé par rapport à ma demande en fait...
Voilà je suis en train de faire un script qui bloque la soumission des formulaires suite à une première soumission.
Voici le script :
var
myForm = document.forms[0];
var bSubmitting false;oldOnSubmit myForm.onsubmit;
oldSubmit = myForm.submit;
function newOnSubmit() {
if(oldOnSubmit) // Dans le cas ou dans la balise form il n'y a pas de OnSubmit {
if (!bSubmitting && oldOnSubmit()) // On fait le onSubmit et on test si le formulaire n'est pas soumis {
bSubmitting =
true;
return
true; }
else {
return
false; }
}
else {
if (!bSubmitting) {
return
true; }
else {
return
false; }
}
}
function newSubmit() {
if(oldOnSubmit) // Dans le cas ou il est passé dans le oldOnSubmit on fait l'ancien submit = form.submit {
oldSubmit(); // Il me genère une exception sous FireFox
}
else {
if (!bSubmitting) // ici la fonction form.submit est appelé {
bSubmitting =
true; oldSubmit(); // Il me genère une exception sous FireFox
}
}
}
if (oldSubmit) {// On place le nouveau submit dans le submit myForm.submit = newSubmit;
}
myForm.onsubmit = newOnSubmit;
Au niveau du HTML, je ne mets pas le code, car celui ci diffère selon les pages. Et je dois me démerder pour que celà fonctionne sans changer les pages HML. D'ou le submit et le onSubmit.
Ce script fonctionne très bien sous IE mais ne fonctionne pas sous FireFox il me génère une erreur. Pour ce qui est du debugger sous IE, je l'avais activé et il ne me génère aucune erreur.
Sous FireFox il me génère une exception :
[Exception... "Illegal operation on WrappedNative prototype object" nsresult: "0x8057000c (NS_ERROR_XPC_BAD_OP_ON_WN_PROTO)" location: "JS frame :: mon_script :: newSubmit :: line 110" data: no]
mon_script
Line 110
En faisant des recherche il faudrait overridé le submit du genre :
myForm.submit = newSubmit;
myForm.onsubmit = newOnSubmit;
// capture the onsubmit event on all formswindow.addEventListener(