|
Publicité | |||||||||||||||||||||||
|
|
#1 (permalink) |
|
Expert Confirmé Sénior
![]() Date d'inscription: février 2008
Localisation: Revel
Messages: 2 104
|
Bonjour,
j'aimerais ajouter un id à Email (puisqu'il y a un autre champs sur lequel je dois appliquer la condition) mais les syntaxes ['Email, EmailCtc'] ou ['Email','EmailCtc'] ne fonctionnent pas. Je suppose que c'est plus compliqué? Code :
function CheckField(){ if (document.forms['RegisterForm'].elements['Email'].value == '') { alert('Adresse email obligatoire !'); document.forms['RegisterForm'].elements['Email'].focus(); return false; } |
|
|
|
|
|
#2 (permalink) |
![]() Date d'inscription: octobre 2007
Localisation: Paris
Messages: 490
|
Avec cette syntaxe
Code :
document.forms['RegisterForm'].elements['Email'] Si tu veux passer par l'id, Code :
document.getElementById(id);
__________________
on ne dit pas "ça ne marche pas" on dit "je suis incapable de faire fonctionner correctement les outils mis à ma disposition" |
|
|
|
|
|
#4 (permalink) | |
![]() Date d'inscription: mars 2002
Localisation: Au coeur de la Nébuleuse de la Rainette
Messages: 22 666
|
soit tu reste avec les names en sachant que
Code :
document.forms['RegisterForm'].elements['Email'] Code :
document.forms['RegisterForm'].elements['Email'][0] document.forms['RegisterForm'].elements['Email'][1] ../.. Code :
id="Email1" id="Email2" ../.. et tu utilise un petit code fourni dans les contributions getElement(s)ById http://www.developpez.net/forums/d75...filtre-regexp/
__________________
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts ) Citation:
Votre post a trouvé une réponse qui vous satisfait ? Alors n'oubliez pas le Tag ![]() réalisations web (developpeur et/ou infographiste et/ou chef de projet: www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.sistac-alizay.fr | www.planet-languages.com | www.acoustishop.fr | www.litt.fr |
|
|
|
|
|
#5 (permalink) |
|
Expert Confirmé Sénior
![]() Date d'inscription: février 2008
Localisation: Revel
Messages: 2 104
|
Merci SpaceFrog.
Avant de poursuivre je précise que je suis un grand débutant du JS et que je ne connais pas grand chose à la syntaxe. Voila ce que j'ai déclaré mais ça ne fonctionne pas. Code :
if ( document.forms['RegisterForm'].elements['Email'][0].value == '' document.forms['RegisterForm'].elements['EmailCtc'][1].value == '') { alert('Adresse email obligatoire !'); document.forms['RegisterForm'].elements['Email'].focus(); document.forms['RegisterForm'].elements['EmailCtc'].focus(); return false; } |
|
|
|
|
|
#6 (permalink) |
![]() Date d'inscription: octobre 2007
Localisation: Paris
Messages: 490
|
Code :
if (
document.forms['RegisterForm'].elements['Email'][0].value == '' ||
document.forms['RegisterForm'].elements['EmailCtc'][0].value == '')
// Tu n'as qu'un champ EmailCtc, non ?
{
alert('Adresse email obligatoire !');
document.forms['RegisterForm'].elements['Email'].focus();
document.forms['RegisterForm'].elements['EmailCtc'].focus();
// Supprime une des deux lignes au dessus : tu donnes le focus à Email et immédiatement après à EmailCtc
return false;
}
__________________
on ne dit pas "ça ne marche pas" on dit "je suis incapable de faire fonctionner correctement les outils mis à ma disposition" |
|
|
|
|
|
#7 (permalink) |
|
Membre régulier
![]() Date d'inscription: mars 2009
Localisation: Amiens
Âge: 21
Messages: 114
|
Sinon, tu peux donner un attribut class à tes éléments mail, et faire appel à la fonction getElementsByClassName() pour les récupérer dans un tableau (fonction ci-dessous à copier dans ton code Javascript) :
Code :
function getElementsByClassName(className, tag, elm){ var testClass = new RegExp("(^|s)" + className + "(s|$)"); var tag = tag || "*"; var elm = elm || document; var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag); var returnElements = []; var current; var length = elements.length; for(var i=0; i<length; i++){ current = elements[i ]; if(testClass.test(current.className)){ returnElements.push(current); } } return returnElements; } Fonction testée sous Unix, mais normalement ça devrait aussi marcher sous Windows. |
|
|
|
|
|
#8 (permalink) | |
|
Expert Confirmé Sénior
![]() Date d'inscription: février 2008
Localisation: Revel
Messages: 2 104
|
Citation:
Code :
<input type="text" name="EmailCtc" id="EmailCtc" size="25" maxlength="40" class="txt" value="{$Email}" /> La page en question. @_jey_ Merci mais je suis bien incapable de fusionner cette fonction avec la fonction checkfield sans faire d'erreur de syntaxe ou de logique :-/ |
|
|
|
|
|
|
#9 (permalink) |
![]() Date d'inscription: octobre 2007
Localisation: Paris
Messages: 490
|
Je comprends mieux ton problème ; tes champs Email et EmailCtc ne sont pas dans le même formulaire.
Code :
if(document.forms['RegisterForm'].elements['Email'].value == '' || document.forms['ContactForm'].elements['EmailCtc'].value == '') Cependant, il reste à mon avis un problème fonctionnel : Quand on s'apprête à soumettre un formulaire (sur les 2 différents), les 2 formulaires sont validés. Ma remarque du post précédent était juste pour signaler que tu donnais le focus à chacun des champs. Or à un instant t un seul champ peut avoir le focus.
__________________
on ne dit pas "ça ne marche pas" on dit "je suis incapable de faire fonctionner correctement les outils mis à ma disposition" |
|
|
|
|
|
#10 (permalink) |
|
Expert Confirmé Sénior
![]() Date d'inscription: février 2008
Localisation: Revel
Messages: 2 104
|
Ah ben oui forcément
Autre problème: Depuis que j'ai ajouté l'appel à la fonction checkfield dans le onclick, la fonction de submit n'est plus prise en compte et se trouve remplacée par la lien href (#): (je ne malheureusement pas passer l'appel dans le href via un javascript:...) Code :
<a onclick="return CheckField(); document.forms['RegisterForm'].submit();" href="#" |
|
|
|
|
|
#12 (permalink) | |
![]() Date d'inscription: octobre 2007
Localisation: Paris
Messages: 490
|
Citation:
Code :
<a onclick="return CheckField(); document.forms['RegisterForm'].submit();" href="#" Par contre il faut s'assurer que CheckField renverra true quand il n'y a pas d'erreur et tu pourras faire Code :
<a onclick="if( CheckField() ) { document.forms['RegisterForm'].submit()};" href="#"
__________________
on ne dit pas "ça ne marche pas" on dit "je suis incapable de faire fonctionner correctement les outils mis à ma disposition" |
|
|
|
|
|
|
#13 (permalink) |
|
Expert Confirmé Sénior
![]() Date d'inscription: février 2008
Localisation: Revel
Messages: 2 104
|
Si je supprime les returni false ou que je met ton code (sans le return donc) gwyohm, la suite des instruction s'enchaine (une fois que j'ai validé la première alerte pour OK, la deuxième apparait etc.
|
|
|
|
|
|
#14 (permalink) | |
![]() Date d'inscription: mars 2002
Localisation: Au coeur de la Nébuleuse de la Rainette
Messages: 22 666
|
J'ai cru lire plus haut que si il n'y avait qu'un seul element de même name sur la page ou dans le form on pouvait se passer des indexes ..
Je dois contredire cette information. getElementsByName retourne une collection, meêm si celle ci ne comporte qu'un seul élément il faut passer par les indexes: Code :
<body> <input name="myname" /> </body> <script> alert(document.getElementsByName('myname').name)//undefined alert(document.getElementsByName('myname')[0].name)//myname </script>
__________________
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts ) Citation:
Votre post a trouvé une réponse qui vous satisfait ? Alors n'oubliez pas le Tag ![]() réalisations web (developpeur et/ou infographiste et/ou chef de projet: www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.sistac-alizay.fr | www.planet-languages.com | www.acoustishop.fr | www.litt.fr |
|
|
|
|
|
#15 (permalink) | |
![]() Date d'inscription: octobre 2007
Localisation: Paris
Messages: 490
|
Citation:
Si je n'ai qu'un champ "jambon" dans mon formulaire, document.forms["formName"].elements["jambon"][0] me renvoie undefined Code :
<html><head><title></title></head> <body> <form name="form1"> <input type="text" name="jambon"/> <input type="button" onclick="alert(document.forms['form1'].elements['jambon'][0]);"/> </form> <hr/> <form name="form2"> <input type="text" name="jambon"/> <input type="text" name="jambon"/> <input type="button" onclick="alert(document.forms['form2'].elements['jambon'][0]);"/> </form> </body> </html>
__________________
on ne dit pas "ça ne marche pas" on dit "je suis incapable de faire fonctionner correctement les outils mis à ma disposition" |
|
|
|
|
|
|
![]() |
||
Cumuler plusieurs identifiants
|
||
| Outils de la discussion | |
|
|