Probleme fonction verification formulaire [Résolu]

Signaler
Messages postés
63
Date d'inscription
lundi 6 septembre 2004
Statut
Membre
Dernière intervention
26 juillet 2011
-
Messages postés
63
Date d'inscription
lundi 6 septembre 2004
Statut
Membre
Dernière intervention
26 juillet 2011
-
Bonjour à tous.

Je me tourne vers vous car je ne trouve pas la solution a mon probleme. Je pense que c'est juste une betise que je n'arrive pas à voir, mais là je commence a voir trouble ..
voila, j'ai un formulaire qui enregistre un code et d'autres champs dans une base de donnée. Avant de l'envoyer je fais une verification sur un champ mais quelque soit le resultat de cette verification le script d'ecriture dans la base s'execute.

voici la fonction :
function verif() {
test=isNaN(document.formulaire.qte.value);
if (test==true)
{ alert("La quantité doit etre un chiffre.");
document.formulaire.qte.value.focus();
return false;
}
else {return true;}
}

et dans le formulaire : <form method="post" name="formulaire" onSubmit="return verif();">


merci d'avance.

16 réponses

Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
Bonjour,
bah... et les champs du formulaire ? le submit ?....
oublie aussi de l'action dans le form ?
ou alors... il manque un return false

<script>
function verif() 
{	if (isNaN(document.formulaire.qte.value))
{ 	alert("La quantité doit etre un chiffre.");
document.formulaire.qte.value.focus();
return false;
}
return true;
}
</script>
<form method="post" 
action="javascript:alert('ok');" 
name="formulaire" 
onSubmit="return (verif());">


</form>


Cordialement [mon Site] [M'écrire] Bul
Messages postés
63
Date d'inscription
lundi 6 septembre 2004
Statut
Membre
Dernière intervention
26 juillet 2011

ah ben je les avais pas mis parce que je pensais que la faille venait juste de la fonction.

voila le code complet alors

<html>
<head>
<title>Fournitures</title>
<!--#include file = "connect.asp"-->
<script type="text/javascript" src="stmenu.js"></script>
<link rel="stylesheet" type="text/css" href="style.css">
<script language="javascript">
var ini
function sf() {document.formulaire.nv_code.focus();}
function cpter() {
if (document.formulaire.nv_code.value.length==2)
{ ini=document.formulaire.nv_code.value;
affichage();
}
}
function affichage() {
if (ini!="FI")
{ document.getElementById("qte").style.display="inline";
document.getElementById("unite").style.display="inline";
document.getElementById("titre1").style.display="inline";
document.getElementById("titre2").style.display="inline";
}
}
function verif() {
test=isNaN(document.formulaire.qte.value);
if (test==true)
{ alert("La quantité doit etre un chiffre.");
document.formulaire.qte.value.focus();
return false;
}
else {return true;}
}
</script>
</head>


<!--#include file="menu.inc"-->



Création code

<form method="post" name="formulaire" onSubmit="return verif();">
Code |Libellé |Quantité |Unité (O/N) |
----

,
,
,




</form>


<%
if request.form("sub") ="Créer" then
nv_code=request.form("nv_code")
libelle=request.form("libelle")
qte=request.form("qte")
unit=request.form("unite")

if left(nv_code,2)="FI" then
typ="info"
else
typ="fourn"
end if

sql_verif="select code from "&typ&" ;"
set rs_verif=conn.execute(sql_verif)
x=0
do while not rs_verif.eof
if rs_verif("code")=nv_code then
x=1
end if
rs_verif.movenext
loop
if x=1 then %>
<script language="javascript">
alert("Ce code existe déjà.");
window.location="crea_code.asp";
</script>
<% else
nv_code=ucase(nv_code)
libelle=ucase(libelle)
unit=ucase(unit)
if typ="fourn" then
sql_cre="insert into fourn (code,libelle,quantite,unite) values ('"&nv_code&"','"&libelle&"','"&qte&"','"&unit&"') ;"
else
sql_cre="insert into info (code,libelle) values ('"&nv_code&"','"&libelle&"') ;"
end if
conn.execute(sql_cre)
%>
<script language="javascript">
alert("Le code <%=nv_code%> a été créé.");
</script>
<%
end if 'verif'
end if 'creer'
%>

</html>
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
remarque : un champ vide est accepté.
Messages postés
63
Date d'inscription
lundi 6 septembre 2004
Statut
Membre
Dernière intervention
26 juillet 2011

oui, le champ n'est pas forcement renseigné, mais s'il l'est doit etre numerique
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
ah ben, le code complet maintenant...
certes mais avec de l'ASP ????
comment on devine ce que ça génère ?
déjà, on n'a pas ta base de donnée !!!!

regarde l'exemple fait,
adapte,
si ça ne fonctionne pas fais nous l'extrait
du nécessaire ! tout le nécessaire, mais
rien que le nécessaire ! et pas l'asp,
la page html résultante !!
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
un formulaire ça charge une page,
celle donnée dans l'action du formulaire
ici, tu ne met rien, donc ça rechargera
la même page
sauf si on met return false;
dans le onsubmit ou que la
fonction appelée retourne false
bien sût
Messages postés
63
Date d'inscription
lundi 6 septembre 2004
Statut
Membre
Dernière intervention
26 juillet 2011

ben la fonction est censée retourner un false si c'est pas numerique.

j'ai rajouté action="crea_code.asp" puisque le reste de l'action se deroule sur cette meme page apres le submit. (if request.form("sub")....) mais bon je pense pas que ca change quoi que ce soit de le mettre ou pas
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
>>ben la fonction est censée retourner un false
>>si c'est pas numerique.
et si c'est numérique ?
et tu as essayé mon exemple ? il fonctionne.
Messages postés
63
Date d'inscription
lundi 6 septembre 2004
Statut
Membre
Dernière intervention
26 juillet 2011

j'ai remplacé
test=isNaN(document.formulaire.qte.value);
if (test==true)

par ton
if (isNaN(document.formulaire.qte.value))

et du coup ca marche... franchement je comprends pas
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
il y a une erreur
que je n'ai pas rectifiée d'ailleurs !
document.formulaire.qte.value.focus(); // value en trop
du coup, return false n'est pas fait
Messages postés
63
Date d'inscription
lundi 6 septembre 2004
Statut
Membre
Dernière intervention
26 juillet 2011

non, ca je l'avais reperé, je l'ai corrigé mais ca changeait pas le pb
Messages postés
63
Date d'inscription
lundi 6 septembre 2004
Statut
Membre
Dernière intervention
26 juillet 2011

remarque je me souviens pas de la chronologie... peut etre que ca marchait et que j'ai pas testé entre temps apres cette correction.. que j'ai essayé avec ton "if" et que du coup ca marchait... enfin de toute facon ton IF est plus simple, je sais pas pourquoi je passe toujours par des etapes intermediaires... le manque d'habitude surement
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
j'ai remplacé
test=isNaN(document.formulaire.qte.value);
if (test==true)
par
if (isNaN(document.formulaire.qte.value))

ça ne pouvait pas venir de cela à priori.
il y avait un je ne sais quoi d'autre je ne sais où...
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
handicapé nasal ( ou néanmoins ),
ne pas oublier que la page sera rechargée
( donc réinitialisée ) si la quantité est bonne.
Messages postés
63
Date d'inscription
lundi 6 septembre 2004
Statut
Membre
Dernière intervention
26 juillet 2011

Le principal c'est que ca fonctionne. je te remercie pour ton aide.

a la prochaine parce qu'il y en aura surement une
Messages postés
63
Date d'inscription
lundi 6 septembre 2004
Statut
Membre
Dernière intervention
26 juillet 2011

oui oui c'est de là que part la suite.

je teste le champ submit du formulaire

if request.form("sub")="Créer" then...

et a partir de là j'ecris dans la base les valeurs retournées par le request.form de chaque champ.