Formulaire interactif
keurdange
Messages postés
816
Statut
Membre
-
keurdange Messages postés 816 Statut Membre -
keurdange Messages postés 816 Statut Membre -
Bonjour,
Comme le titre l'indique, j'aimerais faire un formulaire interactif mais je crois que j'ai un problème sur la fonction getAttention censée récupérer les spans avec les messages d'erreur.
Voici mon HTML
<div id="ligne"><div id="colonne"><label for="nom">Votre nom *</label></div><div id="colonne">
<input type="texte" name="nom" id="nom" maxlength="30" placeholder="Maximum de caractère 30" size="33" required />
</div><div id="colonne"><span class="attention">Veuillez entrer un nom valide</span></div></div>
les id=ligne et id=colonne gèrent la mise en page sous forme de tableau sur le css.
Voici le javascript pour le formulaire interactif
function desactiveAttentions()
{
var spans=document.getElementsByTagName('span'),
spansLenth=spans.length,i;
for(i=0;i<spansLenth;i++)
{
if(spans[i].className=='attention')
spans[i].style.display='none';
}
}
function getAttention(element)
{
while(element=element.nextSibling)
{
if(element.className==='attention')
{
return element;
}
}
return false;
}
var verification={};
verification['nom']=function(id) {
var nom=document.getElementById(id),
attentionStyle=getAttention(nom).style;
if(nom.value.length>=10)
{
nom.className='correct';
attentionStyle.display='none';
return true;
}
else
{
nom.className='incorrecte';
attentionStyle.display='inline-block';
return false;
}
};
(function()
{
var accueil_form=document.getElementById('accueil_form'),
inputs=document.getElementsByTagName('input'),
inputsTaille=inputs.length;
for(var i=0;i<inputsTaille;i++)
{
if(inputs[i].type=='text' || inputs[i].type=='password')
{
inputs[i].onkeyup=function() {
verification[this.id](this.id);
};
}
}
})();
desactiveAttentions();
j'ai essayé différente manière depuis plus de 3 jours mais je suis toujours coincé à la fonction getAttention (car selon moi, je pense que le problême viendrait de là bas car l'erreur sur le console dit qu'il ne peut pas créer un display pour un undefined: ce qui veut dire que l'element n'a pas été trouvé. Il ne peut non plus créer un display pour un NULL quand j'utilise les firstChild ou childNodes car il n'y a pas d'enfants à ce noeud)
Je suis vraiment coincé et je m'en remets à la communté du Sdz.
Merci d'avance pour votre aide
Dieu n'a fait qu'ébaucher l'homme, c'est sur terre que chacun se crèe
Comme le titre l'indique, j'aimerais faire un formulaire interactif mais je crois que j'ai un problème sur la fonction getAttention censée récupérer les spans avec les messages d'erreur.
Voici mon HTML
<div id="ligne"><div id="colonne"><label for="nom">Votre nom *</label></div><div id="colonne">
<input type="texte" name="nom" id="nom" maxlength="30" placeholder="Maximum de caractère 30" size="33" required />
</div><div id="colonne"><span class="attention">Veuillez entrer un nom valide</span></div></div>
les id=ligne et id=colonne gèrent la mise en page sous forme de tableau sur le css.
Voici le javascript pour le formulaire interactif
function desactiveAttentions()
{
var spans=document.getElementsByTagName('span'),
spansLenth=spans.length,i;
for(i=0;i<spansLenth;i++)
{
if(spans[i].className=='attention')
spans[i].style.display='none';
}
}
function getAttention(element)
{
while(element=element.nextSibling)
{
if(element.className==='attention')
{
return element;
}
}
return false;
}
var verification={};
verification['nom']=function(id) {
var nom=document.getElementById(id),
attentionStyle=getAttention(nom).style;
if(nom.value.length>=10)
{
nom.className='correct';
attentionStyle.display='none';
return true;
}
else
{
nom.className='incorrecte';
attentionStyle.display='inline-block';
return false;
}
};
(function()
{
var accueil_form=document.getElementById('accueil_form'),
inputs=document.getElementsByTagName('input'),
inputsTaille=inputs.length;
for(var i=0;i<inputsTaille;i++)
{
if(inputs[i].type=='text' || inputs[i].type=='password')
{
inputs[i].onkeyup=function() {
verification[this.id](this.id);
};
}
}
})();
desactiveAttentions();
j'ai essayé différente manière depuis plus de 3 jours mais je suis toujours coincé à la fonction getAttention (car selon moi, je pense que le problême viendrait de là bas car l'erreur sur le console dit qu'il ne peut pas créer un display pour un undefined: ce qui veut dire que l'element n'a pas été trouvé. Il ne peut non plus créer un display pour un NULL quand j'utilise les firstChild ou childNodes car il n'y a pas d'enfants à ce noeud)
Je suis vraiment coincé et je m'en remets à la communté du Sdz.
Merci d'avance pour votre aide
Dieu n'a fait qu'ébaucher l'homme, c'est sur terre que chacun se crèe
A voir également:
- Formulaire interactif
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook compte désactivé - Guide
- Sommaire interactif word - Guide
- Formulaire de reclamation instagram - Guide
- Confirmer le nouvel envoi du formulaire err_cache_miss ✓ - Forum Access
Rectification: je m'en remet à la communauté de commentcamarche ;-)
j'ai essyé ton code mais ça donne toujours la même erreur.
j'ai aussi modifié le mien en faisant
function getAttention(element)
{
var parElement=element.parentNode,
enfParElement=parElement.childNodes;
for(var i=0; i<enfParElement.length;i++)
{
if(enfParElement[i].className==='attention')
{
return enfParElement[i];
break;
}
}
return false;
}
mais, ca ne marche toujours pas.
Merci d'avoir repondu...