Formulaire javascript

Fermé
Dark_Casimir Messages postés 1 Date d'inscription samedi 1 décembre 2012 Statut Membre Dernière intervention 1 décembre 2012 - 1 déc. 2012 à 17:20
 Dark_Casimir - 23 déc. 2012 à 17:49
Bonjour,
Je suis étudiant en IUT et j'ai un petit soucis avec un formulaire que je dois réaliser en html avec du javascript.

Je voudrais contrôler qu'aucun champs ne soit vide, donc voici ma fonction :
function vide(form1){
if(document.form1.nom.value == ""){
alert("Merci de renseigner le champs !");
document.forms["form1"].elements["nom"].focus();
return false;
}

if(document.form1.prénom.value == ""){
alert("Merci de renseigner le champs !");
document.forms["form1"].elements["prénom"].focus();
return false;
}
return true;
}

Et voici les champs concernés pour le moment :
<p> <label> Nom : <input type="text" name="nom" id="nom" onblur="vide(form1);"></label></p>
<p> <label> Prénom : <input type="text" name="prénom" id="prénom" onblur="vide(form1);"></label></p>

Je veux également vérifier que dans ces deux champs, l'utilisateur n'aie pas rentré de nombre. J'ai essayé ceci :
function checknom(form1){
var str = document.form1.nom.value;
for(var i=0; i<str.length; i++){
if(isNaN(str[i]){
alert("Vous avez tapé un nombre !");
return false;
}
} return true;
}

Le soucis c'est que lorsque j'essaye ça, ma fonction vide(form1) ne fonctionne plus. Et puis je doute qu'il faille faire ça pour contrôler la présence de nombre dans mes champs "nom" et "prénom"

Merci d'avance pour vos réponses.

4 réponses

Stanislas Poisson Messages postés 424 Date d'inscription samedi 1 décembre 2012 Statut Membre Dernière intervention 22 mai 2018 66
1 déc. 2012 à 22:32
Perso, je ferai un typeof(str)=='Number' plus rapide et bien sur penser au difference entre 12 - 12.00 - 12,00 car je suis pas sur que le type of soit le meme.
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
Modifié par Alain_42 le 11/12/2012 à 10:59
perso je regarderai du côté des expressions régulières Regex en javascript

tu fais une Regex new RegExp("[0-9]", "g"); et tu testes si tu trouves dans le champ

vas voir le site:

https://openclassrooms.com/fr/courses/5543061-ecrivez-du-javascript-pour-le-web?archived-source=1916641

ou ce site de test en ligne: http://quentinc.net/testeur-expressions-regulieres

ensuite ta méthode de test n'est pas bonne onBlur pour lancer la verif vide, si l'utilisateur ne clique pas sur le champ ça n'appellera pas la fonction.

il vaut mieux:

<form name="form1" action="..." method="post" onsubmit="return vide('form1');">

qui lancera la fonction a l'envoi du formulaire et empêchera son envoi en cas de return false
0
Stanislas Poisson Messages postés 424 Date d'inscription samedi 1 décembre 2012 Statut Membre Dernière intervention 22 mai 2018 66
17 déc. 2012 à 09:44
Alors a tu tester?
0
Dark_Casimir
23 déc. 2012 à 17:49
Oui j'ai pu essayer et ça marche super merci beaucoup !
0