Formulaire - form [Résolu]

Messages postés
8
Date d'inscription
dimanche 20 mai 2012
Statut
Membre
Dernière intervention
25 mai 2012
- - Dernière réponse : BunoCS
Messages postés
14511
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
24 mai 2019
- 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
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
Messages postés
224
Date d'inscription
vendredi 26 novembre 2010
Statut
Membre
Dernière intervention
11 juin 2013
2
3
Merci
Nickel!
content que ça fonctionne comme tu veux.

ciao

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 145 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_L0ci
Messages postés
14511
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
24 mai 2019
88
3
Merci
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...

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 145 internautes nous ont dit merci ce mois-ci

Commenter la réponse de BunoCS
Messages postés
14511
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
24 mai 2019
88
0
Merci
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...
Commenter la réponse de BunoCS
Messages postés
224
Date d'inscription
vendredi 26 novembre 2010
Statut
Membre
Dernière intervention
11 juin 2013
2
0
Merci
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
Commenter la réponse de cs_L0ci
Messages postés
8
Date d'inscription
dimanche 20 mai 2012
Statut
Membre
Dernière intervention
25 mai 2012
0
Merci
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
Commenter la réponse de Adri111
Messages postés
224
Date d'inscription
vendredi 26 novembre 2010
Statut
Membre
Dernière intervention
11 juin 2013
2
0
Merci
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.
Commenter la réponse de cs_L0ci
Messages postés
8
Date d'inscription
dimanche 20 mai 2012
Statut
Membre
Dernière intervention
25 mai 2012
0
Merci
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...
Commenter la réponse de Adri111
Messages postés
224
Date d'inscription
vendredi 26 novembre 2010
Statut
Membre
Dernière intervention
11 juin 2013
2
0
Merci
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.');
} 
Commenter la réponse de cs_L0ci
Messages postés
8
Date d'inscription
dimanche 20 mai 2012
Statut
Membre
Dernière intervention
25 mai 2012
0
Merci
Ouiii, C'est exactement ce que je voulais...
Tout marche pour le mieux...
Merci beaucoup pour ton aide,
Bravo!!!
Ciao,
Adri
Commenter la réponse de Adri111