Formulaire - form

Résolu
Adri111 Messages postés 8 Date d'inscription dimanche 20 mai 2012 Statut Membre Dernière intervention 25 mai 2012 - 20 mai 2012 à 19:31
BunoCS Messages postés 15476 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 3 mai 2024 - 23 mai 2012 à 12:07
Bonjour à tous,
Je suis nouveau dans ce langage, et j’avoue que j’ai bien des problèmes pour faire ce formulaire en Espagnol. Je vous remercie d’avance pour m’éclairer sur ce sujet. Voila j’ai déjà le code html et il me reste à faire le script. Je suis partie d’un manuel, mais je dois dire que pour l’instant j’ai du mal à voir comment fonction exactement le javascript.
Voici le code que j’ai déjà fait :

<script>

function validar ()
{
var nombre = document.getElementById("nombre");
var edad = document.getElementById("edad");
var Direc = document.getElementById("Direc");
var Post = document.getElementById("Post");
var Tel = document.getElementById("Tel");
var dni = document.getElementById("dni");
cadena="TRWAGMYFPDXBNJZSQVHLCKET"
posicionDni = registro.dni.value % 23
letra = cadena.substring(posicionDni,posicionDni+1)

if (formulario.nombre.value.length != 20) {
alert("Nombre erroneo: El nombre es demaciado largo.");
return false;
}
else
{
return true;
}
if (formulario.edad.value <= 18 || edad >=99) {
alert("Edad erroneo: Tiene que tener entre 18 y 99 anos.");
return false;
}
else
{
return true;
}
if (formulario.Direc.value.length >= 20) {
alert("Direccion erronea: tiene que hacer maximo 20 digitos.");
return false;
}
else
{
return true;
}
if (formulario.Post.value.length != 5) {
alert("Codigo postal erroneo: tiene que hacer 5 digitos.");
return false;
}
else
{
return true;
}
if (formulario.Tel.value.length != 9) {
alert("El telefono es erroneo: tiene que hacer 9 digitos.");
return false;
}
else
{
return true;
}
if (formulario.dni.value.length != 8) {
alert("Dni erroneo: tiene que hacer 8 digitos.");
return false;
}
else
{
return true;
}
else {
alert('El formulario esta completo.')
}
}
</script>
</head>


Introduzca sus datos personales:


<form name="registro">
Nombre,
,

----

Edad (18-99),
,

----

Dirección de correo,
,

----

Código postal,
,

----

Teléfono,
,

----

DNI,





</form>

</html>

Encore merci ;)
Adrien

9 réponses

cs_L0ci Messages postés 224 Date d'inscription vendredi 26 novembre 2010 Statut Membre Dernière intervention 11 juin 2013 7
23 mai 2012 à 10:58
Nickel!
content que ça fonctionne comme tu veux.

ciao
3
BunoCS Messages postés 15476 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 3 mai 2024 103
23 mai 2012 à 12:07
Hello,
Si la réponse te convient, merci de cliquer sur "Réponse Acceptée"


@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
3
BunoCS Messages postés 15476 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 3 mai 2024 103
21 mai 2012 à 10:42
Hello,
Vu le code, je déplace ta demande dans la section Javascript...


@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
cs_L0ci Messages postés 224 Date d'inscription vendredi 26 novembre 2010 Statut Membre Dernière intervention 11 juin 2013 7
21 mai 2012 à 11:41
Bonjour,

Ton javascript fonctionne de la manière suivante:
var nombre = document.getElementById("nombre");
récupère l'objet qui a l'id nombre dans la page html.

if (formulario.nombre.value.length != 20) { 
alert("Nombre erroneo: El nombre es demaciado largo."); 
return false; 
} 
else 
{ 
return true; 
} 
ce code vérifie que la longueur (nombre de caractères) dans le champs qui a l'id nombre est = a 20.
Si oui -> return true, et test du champs suivant
Si non -> return false, affichage d'un message d'alerte pour expliquer l'erreur.

PS: Il manque 2 choses a ton post: une question et les balises codes pour améliorer la lisibilité. Penses y la prochaine fois
0

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

Posez votre question
Adri111 Messages postés 8 Date d'inscription dimanche 20 mai 2012 Statut Membre Dernière intervention 25 mai 2012
22 mai 2012 à 10:15
Merci pour vos réponses.
Oui, pardon c'est vrais que je n'ai pas posé de question.
C'est que mon code ne fonction pas et que quand je remplie le formulaire, aucune fenêtre n’apparaît pour me dire l’erreur.
La question est donc :
Quel est le code qui me manque ou qui ne fonction pas pour que mon formulaire marche ?
Merci d'avance,
Adrien
0
cs_L0ci Messages postés 224 Date d'inscription vendredi 26 novembre 2010 Statut Membre Dernière intervention 11 juin 2013 7
22 mai 2012 à 10:36
Bonjour,

A la fin de ton code il y a une erreur:
if (formulario.dni.value.length != 8) { 
  alert("Dni erroneo: tiene que hacer 8 digitos."); 
  return false; 
} 
else 
{ 
  return true; 
} 
else { 
  alert('El formulario esta completo.') 
} 
} 
Un if ne peut james etre suivit de 2 else successifs. il faut donc mettre:
if (formulario.dni.value.length != 8) { 
  alert("Dni erroneo: tiene que hacer 8 digitos."); 
  return false; 
} 
else 
{ 
  alert('El formulario esta completo.')
  return true; 
} 
} 

les autres erreurs que je trouve sont au niveaux des lignes:
posicionDni = registro.dni.value % 23 
letra = cadena.substring(posicionDni,posicionDni+1)
ainsi que l'utilisation du mot formulario dans :
if (formulario.nombre.value.length != 20)


En enlevant les 2 lignes ci dessus et en enlevant le mot formulario (qui n'est pas necessaire ici puisqu'on récupère déjà les bonnes balises) le script fonctionne.
0
Adri111 Messages postés 8 Date d'inscription dimanche 20 mai 2012 Statut Membre Dernière intervention 25 mai 2012
22 mai 2012 à 22:30
Merci pour ton aide!!!
Là je viens de faire les rectifications que tu m'as dit,
Plus un petit code pour valider le formulaire, mais je ne sais pas si je m'y prends bien.
if (function validar () = true) {
alert("Le formulaire est juste");
}

Le but étant que si toutes les cases sont bien remplie, le bouton "Validar datos" me dise que le formulaire est juste.

Mon code javascript en entier serait donc:
<script>

function validar ()
{
var nombre = document.getElementById("nombre");
var edad = document.getElementById("edad");
var Direc = document.getElementById("Direc");
var Post = document.getElementById("Post");
var Tel = document.getElementById("Tel");
var dni = document.getElementById("dni");

if (nombre.value.length >= 20) {
    alert("Nombre erroneo: El nombre es demaciado largo.");
return false;
        }
else
        {
        return true;
        }
if (edad.value <= 18 || edad >=99) {
    alert("Edad erroneo: Tiene que tener entre 18 y 99 anos.");
return false;
        }
else
        {
        return true;
        }
if (Direc.value.length >= 20) {
    alert("Direccion erronea: tiene que hacer maximo 20 digitos.");
return false;
        }
else
        {
        return true;
        } 
if (Post.value.length != 5) {
    alert("Codigo postal erroneo: tiene que hacer 5 digitos.");
return false;
        }
else
        {
        return true;
        } 
if (Tel.value.length != 9) {
    alert("El telefono es erroneo: tiene que hacer 9 digitos.");
return false;
        }
else
        {
        return true;
        }
if (dni.value.length != 8) { 
  alert("Dni erroneo: tiene que hacer 8 digitos."); 
  return false; 
} 
else
        {
        return true;
        }
}
if (function validar () = true) {
alert("Le formulaire est juste");
}
</script>


PS: Je n'arrive toujours pas a ce que le formulaire me donne une réponse
J'espère ne pas trop abuser de ta patience...
0
cs_L0ci Messages postés 224 Date d'inscription vendredi 26 novembre 2010 Statut Membre Dernière intervention 11 juin 2013 7
23 mai 2012 à 09:08
Bonjour,

Bon alors il y avait encore 2 ou 3 petites choses a modifier .

Premièrement j'ai retiré tout les else. si le code ne return pas false il va continuer a s'executer donc inutile de lui retourner true.

Ensuite il y avait une erreur au niveau de la récupération de Dni, un pti problème de majuscule...

Finalement pour afficher le message pour dire que tout va bien il suffit d’exécuter l'alert après les if successifs.

Voila le code corrigé:
function validar () 
{ 
var nombre = document.getElementById("nombre"); 
var edad = document.getElementById("edad"); 
var Direc = document.getElementById("Direc"); 
var Post = document.getElementById("Post"); 
var Tel = document.getElementById("Tel"); 
var Dni = document.getElementById("Dni"); 

if (nombre.value.length != 20) { 
alert("Nombre erroneo: El nombre es demaciado largo."); 
return false; 
} 

if (edad.value <= 18 || edad >=99) { 
alert("Edad erroneo: Tiene que tener entre 18 y 99 anos."); 
return false; 
} 

if (Direc.value.length >= 20) { 
alert("Direccion erronea: tiene que hacer maximo 20 digitos."); 
return false; 
} 

if (Post.value.length != 5) { 
alert("Codigo postal erroneo: tiene que hacer 5 digitos."); 
return false; 
} 

if (Tel.value.length != 9) { 
alert("El telefono es erroneo: tiene que hacer 9 digitos."); 
return false; 
} 

if (Dni.value.length != 8) { 
alert("Dni erroneo: tiene que hacer 8 digitos."); 
return false; 
} 

alert('El formulario esta completo.');
} 
0
Adri111 Messages postés 8 Date d'inscription dimanche 20 mai 2012 Statut Membre Dernière intervention 25 mai 2012
23 mai 2012 à 10:20
Ouiii, C'est exactement ce que je voulais...
Tout marche pour le mieux...
Merci beaucoup pour ton aide,
Bravo!!!
Ciao,
Adri
0
Rejoignez-nous