OVH Cloud OVH Cloud

submit vs submit()

4 réponses
Avatar
jacek55
Bonjour,

J'ai =E9crit

<html lang=3D"fr">
<head>
<title>Test submit()</title>

<script type=3D"text/javascript">

function test_forme () {
if (document.getElementsByName('i-test')[0].value !=3D '')
document.f-test.submit() ;
else alert ("pas submit") ;

return ;
}

</script></head>


<body>
<form action=3D"/cgi-bin/estime.pl" method=3D"post" name=3D"f-test">

<input type=3Dtext value=3D"test" name=3D"i-test"><br>
<input type=3Dbutton value=3D"test" onclick=3D'test_forme()'><br>
<input type=3Dsubmit value=3D"submit"><br>

</form></body></html>


Mon bouton 'submit' m'envoie bien sur 'estime.pl', inexistant en
occurance, par contre ma fonction
document.f-test.submit() ; ne fait rien du tout.

Et pourtant

http://fr.selfhtml.org/javascript/objets/affichage/forms_submit.htm

m'explique :

.=2E. cette m=E9thode ... ne fonctionne ... qu'uniquement si ... dans le
rep=E8re d'ouverture <form> pour la mention action=3D, un programme CGI,
par exemple, est appel=E9.

Pourriez-vous m'expliquer, ou est-il, l'erreur ?

Merci,

Jacek

PS Firefox 1.5.0.3/Linux

4 réponses

Avatar
ASM
Bonjour,

J'ai écrit

<html lang="fr">
<head>
<title>Test submit()</title>

<script type="text/javascript">

function test_forme () {
if (document.getElementsByName('i-test')[0].value != '')
document.f-test.submit() ;
else alert ("pas submit") ;

return ;
}


function test_forme () {
if(document.getElementsByName('i-test')[0].value == '')
{
alert('operation annulee');
alert('veuiller compléter le champ');
return false;
}
return true;
}

</script></head>
<body>
<form action="/cgi-bin/estime.pl" method="post" name="f-test">


<form action="/cgi-bin/estime.pl" method="post"
name="f-test" onsubmit="return test_forme();">

<input type=submit value=" test ">

</form></body></html>


Mon bouton 'submit' m'envoie bien sur 'estime.pl', inexistant en
occurance, par contre ma fonction
document.f-test.submit() ; ne fait rien du tout.


pas très étonnant, tu as tout tourné à l'envers :
- si c'est pas OK elle envoie une alerte
- mais il est peut-être trop tard ?
le formulaire a déjà été posté.

Il faut empêcher le formulaire de partir (d'être soumissionné)

Et pourtant

http://fr.selfhtml.org/javascript/objets/affichage/forms_submit.htm

m'explique :

... cette méthode ... ne fonctionne ... qu'uniquement si ... dans le
repère d'ouverture <form> pour la mention action=, un programme CGI,
par exemple, est appelé.

Pourriez-vous m'expliquer, ou est-il, l'erreur ?


Je supose que le CGI regarde sur quel bouton tu as cliqué, et si les
champs sont complétés, sinon il te renvoie le formulaire ?



--
Stephane Moriaux et son [moins] vieux Mac

Avatar
jacek55
Ta metode marche, donc je sais comment faire pour empecher la forme
partir.

Mais la question comment utiliser document.ma-forme.submit() pour qu'il
envoie la forme sans employer le bouton reste ouverte. Je me suis
inspiré du selfhtml, que je cite ici au lieu de donner des link
pourris :


<html><head><title>Test</title>
</head><body>
<form name="formulaire_test" action="/cgi-bin/estime.pl" method="get">
<input type="text" size="40" name="champ1"><br>
<input type="text" size="40" name="champ2"><br>
</form>
<script type="text/javascript">
<!--
function on_y_va()
{
document.formulaire_test.submit();
}
window.setTimeout("on_y_va()",60000);
//-->
</script>
</body></html>

La differnce, que chez moi la fonction est declanchée par bouton au
lieu du time-out.

Donc comment faire ?

Merci

Jacek
Avatar
O.L.
document.f-test.submit() ;
Mais la question comment utiliser document.ma-forme.submit()


document.ma-forme ne te donnera jamais un formulaire, car le signe "-"
est l'opérateur de soustraction, et ne doit pas être utilisé pour
donner un nom à un objet, utilise "_" à la place.

Pour le navigateur, document.f-test.submit() équivaut à (document.f) -
(test.submit()) ...

--
Olivier Ligny
Créateur web free-lance / www.cyber-tamtam.net

Avatar
jacek55

document.f-test.submit() ;
Mais la question comment utiliser document.ma-forme.submit()


document.ma-forme ne te donnera jamais un formulaire, car le signe "-"
est l'opérateur de soustraction, et ne doit pas être utilisé pour
donner un nom à un objet,


En effet, on se fait toujours piéger par des co...ries, et les
navigateurs sont d'une tolerance redoutable.

Merci en tout cas

Jacek