Valider formulaire avec touche entrée ?

Fermé
lilie63 - 16 avril 2008 à 09:27
 Anonyme - 22 janv. 2013 à 21:48
Bonjour,

Je voudrais valider le formulaire (saisie mot de passe) avec la touche entrée du clavier comme lorsque l'on clique sur le bouton valider. Si le mot de passe est faux et que l'on appuie sur entrée du clavier, je veux une fenêtre mot de passe incorrect comme avec le bouton valider.
Si j'enlève la fonction desactiventree, et si j'appuie sur la touche entrée, le formulaire est validé même si il n'y a pas de mot de passe ou si le mot de passe est faux...
Merci de m'aider, je ne trouve pas.


<SCRIPT LANGUAGE="JavaScript">
function Motdepasse(formulaire)
{ if(formulaire.motdepasse.value =="zzzz")
{ formulaire.submit(); }
else{ alert("Mot de passe incorrect"); formulaire.motdepasse.value="";} }

function desactiventree()
{ if(window.event.type=="keypress" & window.event.keyCode==13)
{ return !(window.event.type=="keypress" & window.event.keyCode==13);} }
document.onkeypress=desactiventree;
</SCRIPT>
</head>

<body onload="document.form1.motdepasse.focus()">
<div id="motdepasse">Veuillez saisir le mot de passe et cliquer sur valider.
<form name="form1" action="accesclient.htm" method="GET">
<p><input name="motdepasse" type="password" value="" />
<input type="button" value="Valider" onclick="Motdepasse(this.form)" /></p>
</form>
</div>

6 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
28 janv. 2009 à 11:34
Bonjour,

essayes plutôt comme ça:

attention tu ne doit pas verifier le mot de passe par javascript, c'est comme si tu l'écrivait sur la page, en faisant afficher code source de la page on peut le voir.

Il faut le verifier par le script appelé par le action='....' et donc ce doit être un script .php

si tu ne peux pas utiliser du php orientes toi vers .htaccess .htpassword (vas voir sur Google pour ça)

<SCRIPT LANGUAGE="JavaScript">
function Motdepasse(formulaire){
/* if(formulaire.motdepasse.value =="zzzz") 
 ça c'est pas bon du tout tu mets le mot de passe dans le javascript
 un affichage source de la page donne le mot de pass donc sécurité =0
	*/
	if(window.event.type=="keypress" & window.event.keyCode==13){
		//la touche entrée sera sans effet
		return false;
	
	}
	if(document.formulaire.motdepasse.value ==""){
		alert(" Veuillez sasisir un mot de passe SVP");
		document.formulaire.motdepasse.focus();
		return false;
	}
	//si mot de passe vide ou touche entrée pressée on return false donc le formulaire n'ets pas envoyé
	//si tout bon on return true donc le formulaire sera envoyé
return true;
	 
}

// tu ne peux pas verifier le mot de passe par javascript comme expliqué plus haut

function desactiventree()
{ if(window.event.type=="keypress" & window.event.keyCode==13)
{ return !(window.event.type=="keypress" & window.event.keyCode==13);} }
document.onkeypress=desactiventree;
</SCRIPT>
</head>

<body onload="javascript:document.form1.motdepasse.focus();">
<div id="motdepasse">Veuillez saisir le mot de passe et cliquer sur valider.
<form name="form1" action="accesclient.htm" method="GET" onSubmit="return Motdepasse(this.form);">
<p><input name="motdepasse" type="password" value="" />
<input type="submit" value="Valider"/></p>
</form>
</div>
1
bonjour Alain

j'ai un souci peut être que tu peut m'aider?

j'ai un formulaire lorsque j'appuie sur la touche entrée le formulaire s'envoie, mais ca marche que sur Fire Fox
j'ai essayer sur Internet Explorer en appuyant sur entrée la page se rafraichisse sans envoyer les données du formulaire

dans la même page j'ai un autre formulaire qui valide le formulaire avec le bouton entree sans problème avec les deux navigateur


merci d'avance
0
J'espère que tu as prévu une sécurité au niveau du serveur (type PHP)
Je désactive JavaScript et sait fini lol !
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
28 janv. 2009 à 13:09
sans le code c'est dur de te donner une solution
1
j'ai trouvée le problème mais pas la solution

dans mon code je ne fait la requête que si le bouton submit est appuyer

avec ce test:

if(isset($submit))
faire ma requete

Fire fox n'envoie pas le bouton vide meme si tu appuie sur entree
mais internet explorer envoi tous les champs les checkbox mais pas le bouton submit : (
0
Bonjour lili

pour ta question, il suffit de remplacer ceci:
<form name="form1" action="accesclient.htm" method="GET">

par ceci:
<form name="form1" action="accesclient.htm" method="GET" onsubmit="javascript::Motdepasse(this.form);">

=)
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
28 janv. 2009 à 13:28
je me repète mais sans le code on ne peux pas te donner la solution
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
En effet,
dans ton code php, au lieu de vérifier si si sublmit existe, vérifie un autre champs. en meme temps, tu vérifie si ce champs existe, si il n'existe pas mets lui une valeur par default, explications :

if(isset($champ)) {
//tu lance ton action
} else {
$champ = "NULL";
}

En esperant t'avoir donné une piste. en tt cas la tienne m'a aidé. merci
0
C'est beaucoup plus simple que ce qui est dit au dessus, pour valider le formulaire avec entrée, il suffit que ton bouton ne soit pas un type button mais un type submit.

tu troueras un exemple sur ce site ici :

http://yumina-flex.comuv.com/?p=216
0