Validation formulaire clavier (IE)

Résolu/Fermé
Jee - 28 févr. 2008 à 12:38
 bobbyjo - 20 juil. 2010 à 07:45
Bonjour,
J'ai un problème avec la validation clavier d'un formulaire sous Internet Explorer.
Tout marche très bien sous Mozilla mais je n'ai aucun retour avec IE.
Pourtant mon input est bien de type "submit" et il vu qu'il s'agit du seul input="submit" présent dans le code ma page, le navigateur n'a pas à aller chercher ailleurs pour l'associer à la touche "entrée" du clavier...

Voila le code de mon formulaire:

<form action="catalogue.php" method="post" name="form_recherche" style="display:inline;" onsubmit="return valider()">
<table cellspacing="0" cellpadding="0" width="100%">
<tr>
<td class="titre_champ02" align="left">N° de Référence / Mot Clé</td>
<td align="right"><input name="recherche" type="text" class="search" size="13" value=""></td>
<td><input name="chercher" type="submit" value="OK" size="2"><br></td>
</tr>
</table>
</form>

Merci d'avance pour vos réponses!
A voir également:

8 réponses

neojick Messages postés 167 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 30 mars 2009 99
28 févr. 2008 à 12:41
A quoi sert la fonction onsubmit="return valider()" ?


Tu vérifie si les champs sont remplis ?

Parce que si tu as trouvé ce code quelque part, la partie onsubmit="return valider()" n'est pas utile dans ton formulaire si tu n'as pas de fonction valider() en javascript qui fait quelque chose.

Firefox ne trouve pas la fonction et passe à la suite, et donc valide le formulaire, alors que ie, lui ne trouve pas la fonction et se bloque.

Mais si cette fonction existe bel et bien et qu'elle traite quelque chose, le "return" de ta fonction ne plait pas à ie.
0
Oui la fonction en javascript existe bien, elle permet d'afficher un "message d'erreur" si l'utilisateur valide le formulaire sans avoir saisie une information.

Voilà le code en javascirpt:

function valider(){
// si la valeur du champ "recherche" est non vide
if(document.form_recherche.recherche.value != "") {
// les données sont ok, on peut envoyer le formulaire
return true;
}
else {
// sinon on affiche un message
alert("Saisissez un mot clé ou une référence");
// et on indique de ne pas envoyer le formulaire
return false;
}
}
0
neojick Messages postés 167 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 30 mars 2009 99
28 févr. 2008 à 13:10
Mets un id à ton input "recherche" et change ta fonction comme ça :


function valider(){
// si la valeur du champ "recherche" est non vide
if(document.getElementById("recherche").value != "") {
// les données sont ok, on peut envoyer le formulaire
return true;
}
else {
// sinon on affiche un message
alert("Saisissez un mot clé ou une référence");
// et on indique de ne pas envoyer le formulaire
return false;
}
}


Question : est-ce que sous ie, le "alert" se déclenche même si le champ est rempli ?


0
euh..je comprend pas trop le truc de l'id dans mon input "recherche". Quelle valeur je dois donner à l'id?

et pour répondre à ta question, non le "alert" fonctionne normalement sous IE.
0
neojick Messages postés 167 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 30 mars 2009 99
28 févr. 2008 à 13:25
le id dont je parlais est : <input name="recherche" id="recherche" ... /> pour que le document.getElementById("recherche") trouve l'input.

Mais si l'alert ne se déclenche pas, c'est que la condition première est respectée normalement.
Mets un alert("test") dans la première partie de la boucle, celle où tu dois passé sur le formulaire est rempli, et regarde si le "test" s'affiche à la validation du formulaire.
0
Je ne voudrais pas abuser de ton temps et de ton aide mais vu que je suis un novice (pour pas dire une quiche) en terme de javascript, je vois pas comment intégrer une alert("test") dans la 1ere boucle :s
0
neojick Messages postés 167 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 30 mars 2009 99
28 févr. 2008 à 13:50
alert("test"); une ligne au dessus avant le return true;
0
ok merci.
bon alors j'ai bien le alert("test") qui s'affiche quand je valide au clavier sous Mozilla et AUSSI sur IE.
Ca veut dire qu'IE comprend quand même la fonction?
0
j'ai oublié de préciser que quand je clique sur le "ok" du alert("test"), les résultats ne s'affichent tjs pas avec IE
0
u<gras>yuy<
/gras>uuyuyjhgjhgjh

hghgjh
0

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

Posez votre question
neojick Messages postés 167 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 30 mars 2009 99
28 févr. 2008 à 14:52
Vire la fonction javascript pour tester si le formulaire se valide
0
Whoohoo! je viens de trouver une solution qui marche! :D
en fait j'ai tout laissé en état et j'ai juste rajouté un input type="hidden" à la suite du input type="submit" qui existait déjà.

Ce qui donne au niveau du javascript (merci neojick):

function valider(){
// si la valeur du champ "recherche" est non vide
if(document.getElementById("recherche").value != "") {
// les données sont ok, on peut envoyer le formulaire
return true;
}
else {
// sinon on affiche un message
alert("Saisissez un mot clé ou une référence");
// et on indique de ne pas envoyer le formulaire
return false;
}
}

et pour le formulaire:

<form action="catalogue.php" method="post" name="form_recherche" style="display:inline;" onsubmit="return valider()">
<table cellspacing="0" cellpadding="0" width="100%">
<tr>
<td class="titre_champ02" align="left">N° de Référence / Mot Clé</td>
<td align="right"><input name="recherche" id="recherche" type="text" class="search" size="13" value="" ></td>
<td><input name="chercher" type="submit" value="OK" size="2"><br>
<input name="chercher" type="hidden" value="OK" size="2">
</td>
</tr>
</table>
</form>

Je sais pas si c'était la meilleure solution pour régler le pb mais au moins comme ça, la validation au clavier marche aussi bien sous Mozilla Firefox que sous IE.
Je suis joie :)
0
neojick Messages postés 167 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 30 mars 2009 99
28 févr. 2008 à 17:15
J'avais déjà entendu parler de cette histoire de type="hidden" mais ce n'est pas logique que ça marche sans. Les joies d'IE....
0
Bonjour,
Je me posais la même question, à savoir "comment faire pour que, sous IE, la validation du formulaire soit possible avec le bouton Entrée ?".
J'ai trouvé une solution, donc si ça peut servir à ceux qui sont dans le même cas que moi.
Admettons que mon formulaire soit :
<form name="form" method="post" action="page.php">
<input type="text" name="champtexte" />
<input type="submit" name="validation" />
</form>

Je me suis aperçu que lorsque je testais l'envoi du formulaire sur le nom du submit, IE ne fonctionnait pas alors qu'en testant sur le nom du champ texte, c'est parfait.
KO :
if isset($_POST['validation']) {...}

OK :
if isset($_POST['champtexte']) {...}

J'espère que ça en aidera certains.
A+
0
Bonjour,
Je me posais la même question, à savoir "comment faire pour que, sous IE, la validation du formulaire soit possible avec le bouton Entrée ?".
J'ai trouvé une solution, donc si ça peut servir à ceux qui sont dans le même cas que moi.
Admettons que mon formulaire soit :
<form name="form" method="post" action="page.php">
<input type="text" name="champtexte" />
<input type="submit" name="validation" />
</form>

Je me suis aperçu que lorsque je testais l'envoi du formulaire sur le nom du submit, IE ne fonctionnait pas alors qu'en testant sur le nom du champ texte, c'est parfait.
KO :
if isset($_POST['validation']) {...}

OK :
if isset($_POST['champtexte']) {...}

J'espère que ça en aidera certains.
A+
0