benetophe
Messages postés14Date d'inscriptionsamedi 20 décembre 2008StatutMembreDernière intervention22 mai 2015
-
3 mai 2009 à 15:53
benetophe
Messages postés14Date d'inscriptionsamedi 20 décembre 2008StatutMembreDernière intervention22 mai 2015
-
6 mai 2009 à 00:28
Bonjour à tous.
j'ai un projet à développer sur la base d'un formulaire et de sa vérification.
Mon formulaire se compose d'un partie générale et d'une partie variable, c'est à dire :
- Partie fixe : nom, prénom, ..... pour cela pas de soucis.- Partie variable : à partir d'une liste déroulante et du choix que l'on fait, une partie du formulaire devient visible. Par exemple : choix 1 nom de l'organisme qui apparait // choix 2 nom du votre garant, adresse de votre garant etc.... // choix 3 = organisme financier, adresse etc...
Pour la partie de apparition des différentes parties du formulaire en fonction du choix, no soucis, par contre c'est sur le script de vérification que je sèche.
Mon soucis est que je ne sais pas comment faire pour qu'il vérifie que la partie sélectionnée (sachant qu'il n'y a pas les mêmes champs dans chaques partie).
Merci à tout ceux qui pourront m'aider car je suis dans les choux.
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 3 mai 2009 à 16:33
Bonjour,
ben... comme la partie concernée est fonction d'un choix,
fais les contrôles en fonction de ce choix... non ?
Cordialement [mon Site] [M'écrire] Bul
@karamel
Messages postés1850Date d'inscriptionvendredi 9 mai 2008StatutModérateurDernière intervention 4 mars 2024152 3 mai 2009 à 19:59
bonjour
aussi si tu fait un display pour cacher les partie tu peut aussi ajouter de condition selon qu'une partie est visible ou non dans le genre si tel partie est visible j'execute ce sript
benetophe
Messages postés14Date d'inscriptionsamedi 20 décembre 2008StatutMembreDernière intervention22 mai 2015 4 mai 2009 à 21:08
Salut et merci pour les suggestions.
Malheureusement j'ai un autre soucis qui vient de s'ajouter... Je n'arrive pas faire apparaitre les zones de chaque choix en fonction du choix dans la zone de liste.
<option value="" selected="selected">Merci de faire un choix</option>
<option value="CHOIX0">Choix0</option>
<option value="CHOIX1">Choix1</option>
<option value="CHOIX2">Choix2</option>
</select>
*
NOM : €
PRENOM : €
AUTRE NOM : €
AUTRE_PRENOM : €
2eme Problème :
En fonction de la sélection, le formulaire doit vérifier tel ou tel partie....
Alors si quelqu'un peut m'aider ce serait super sympa.... car je sèche ....
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 5 mai 2009 à 08:42
zut alors... mon message se perdit ?
ou j'ai posté ailleurs ? va savoir...
je disais :
_ déjà, il y a des erreurs html (
qui manquent )
_ selectedIndex c'est quoi ? ça doit te dire undefined
_ tes if / else ne sont pas corrects
exemple :
<script>
function trait()
{ if ( document.getElementById("TYPE_CHOIX").selectedIndex == 1 )
{ document.getElementById('CHOIX1').style.display='inline';
document.getElementById('CHOIX2').style.display='none';
}
else { document.getElementById('CHOIX2').style.display='inline';
document.getElementById('CHOIX1').style.display='none';
}
}
</script>
<select name="TYPE_CHOIX" id="TYPE_CHOIX"
style="FONT-SIZE: 9pt; FONT-FAMILY: Verdana, Arial, Geneva;"
OnChange="trait();">
<option value="" selected="selected">Merci de faire un choix</option>
<option value="CHOIX0">Choix0</option>
<option value="CHOIX1">Choix1</option>
<option value="CHOIX2">Choix2</option>
</select>
*
NOM : €
PRENOM : €
AUTRE NOM : €
AUTRE_PRENOM : €
et tu pourras contrôler nom et prenom ou autre_nom et autre_prenom
en fonction de document.getElementById("TYPE_CHOIX").selectedIndex
( sans préjuger du reste )
Vous n’avez pas trouvé la réponse que vous recherchez ?
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 5 mai 2009 à 09:57
d'ailleurs une fonction un peu mieux (?)
function trait()
{ var d1=document.getElementById('CHOIX1');
var d2=document.getElementById('CHOIX2')
d1.style.display="none";
d2.style.display="none";
switch ( document.getElementById("TYPE_CHOIX").selectedIndex )
{ case 1:
d1.style.display='inline';
break;
case 2:
d2.style.display='inline';
break;
}
}
benetophe
Messages postés14Date d'inscriptionsamedi 20 décembre 2008StatutMembreDernière intervention22 mai 2015 6 mai 2009 à 00:28
Salut Bul3,
Merci pour ton aide très précieuse.
J'ai pris ton 2eme script et je l'ai adapté à mon html... Il marche nickel... un grand merci pour ton aide.
Par contre au au niveau de la vérification je sèche encore... j'y ai passé toute la journée mais rien...
Lorsque je sélectionne le choix 1 qui ne comprend aucuns champs, il me vérifie tout les champs. Lorsque je sélectionne le choix 2 (=nom + prénom) idem (vérification de tout les champs) et,le choix 3 là c'est ok car il doit me vérifier tout les champs.
Voiçi mon script
dans balise
<head>
<script language="JavaScript" src="gen_validatorv31.js" type="text/javascript"></script>
</head>
Dans balise Body :
<script language="JavaScript" type="text/javascript">
var frmvalidator = new Validator("myform");
frmvalidator.EnableMsgsTogether();
frmvalidator.addValidation("DATE_ENTREE","req","Le champ DATE D'ENTREE est obligatoire");
frmvalidator.addValidation("CANDIDAT_NOM","req","Le champ NOM est obligatoire");
frmvalidator.addValidation("CANDIDAT_NOM","maxlen=32", "La longueur maximale pour entrer votre NOM est de 32 caracthères");
//frmvalidator.addValidation("CANDIDAT_NOM","alpha_d","Seul les lettres sont autorisées dans le champ NOM");
frmvalidator.addValidation("CANDIDAT_PRENOM","req","Le champ PRENOM est obligatoire");
frmvalidator.addValidation("CANDIDAT_PRENOM","maxlen=32", "La longueur maximale pour entrer votre PRENOM est de 32 caracthères");
//frmvalidator.addValidation("CANDIDAT_PRENOM","alpha_s","Seul les lettres sont autorisées dans le champ PRENOM");
frmvalidator.addValidation("CANDIDAT_NAISSANCE_DATE","req","Le champ DATE DE NAISSANCE est obligatoire");
frmvalidator.addValidation("CANDIDAT_NAISSANCE_DATE","maxlen=10", "Merci d'entrer DATE DE NAISSANCE DU GARANT au format jj/mm/aaaa");
frmvalidator.addValidation("CANDIDAT_NAISSANCE_DATE","numeric_d","Le champ DATE DE NAISSANCE DU GARANT est obligatoire (au format jj/mm/aaaa)");
</script>
et le fichier gen_validatorv31.js :
/*
-------------------------------------------------------------------------
JavaScript Form Validator (gen_validatorv31.js)
Version 3.1.1
Copyright (C) 2003-2008 JavaScript-Coder.com. All rights reserved.
You can freely use this script in your Web pages.
You may adapt this script for your own needs, provided these opening credit
lines are kept intact.
}
return pass;
}
function TestRequiredInput(objValue,strError)
{
var ret = true;
var val = objValue.value;
val = val.replace(/^\s+|\s+$/g,"");//trim
if(eval(val.length) == 0)
{
if(!strError || strError.length ==0)
{
strError = objValue.name + " : est requis";
}//if
sfm_show_error_msg(strError,objValue);
ret=false;
}//if
return ret;
}
function TestMaxLen(objValue,strMaxLen,strError)
{
var ret = true;
if(eval(objValue.value.length) > eval(strMaxLen))
{
if(!strError || strError.length ==0)
{
strError = objValue.name + " : "+ strMaxLen +" caractères maximum ";
}//if
sfm_show_error_msg(strError,objValue);
ret = false;
}//if
return ret;
}
function TestMinLen(objValue,strMinLen,strError)
{
var ret = true;
if(eval(objValue.value.length) < eval(strMinLen))
{
if(!strError || strError.length ==0)
{
strError = objValue.name + " : " + strMinLen + " caractères minimum ";
}//if
sfm_show_error_msg(strError,objValue);
ret = false;
}//if
return ret;
}
function TestInputType(objValue,strRegExp,strError,strDefaultError)
{
var ret = true;
var charpos = objValue.value.search(strRegExp);
if(objValue.value.length > 0 && charpos >= 0)
{
if(!strError || strError.length ==0)
{
strError = strDefaultError;
}//if
sfm_show_error_msg(strError,objValue);
ret = false;
}//if
return ret;
}
function TestEmail(objValue,strError)
{
var ret = true;
if(objValue.value.length > 0 && !validateEmail(objValue.value) )
{
if(!strError || strError.length ==0)
{
strError = objValue.name+": Merci d'entrer une adresse Email valide ";
}//if
sfm_show_error_msg(strError,objValue);
ret = false;
}//if
return ret;
}
function TestLessThan(objValue,strLessThan,strError)
{
var ret = true;
if(isNaN(objValue.value))
{
sfm_show_error_msg(objValue.name +": doit être des nombres ",objValue);
ret = false;
}//if
else
if(eval(objValue.value) >= eval(strLessThan))
{
if(!strError || strError.length ==0)
{
strError = objValue.name + " : la valeure doit être inférieure à "+ strLessThan;
}//if
sfm_show_error_msg(strError,objValue);
ret = false;
}//if
return ret;
}
function TestGreaterThan(objValue,strGreaterThan,strError)
{
var ret = true;
if(isNaN(objValue.value))
{
sfm_show_error_msg(objValue.name+": doit être des nombres ",objValue);
ret = false;
}//if
else
if(eval(objValue.value) <= eval(strGreaterThan))
{
if(!strError || strError.length ==0)
{
strError = objValue.name + " : la valeure entrée doit être supérieur à "+ strGreaterThan;
}//if
sfm_show_error_msg(strError,objValue);
ret = false;
}//if
return ret;
}
function TestRegExp(objValue,strRegExp,strError)
{
var ret = true;
if( objValue.value.length > 0 &&
!objValue.value.match(strRegExp) )
{
if(!strError || strError.length ==0)
{
strError = objValue.name+": caractère trouvé invalide ";
}//if
sfm_show_error_msg(strError,objValue);
ret = false;
}//if
return ret;
}
function TestDontSelect(objValue,dont_sel_index,strError)
{
var ret = true;
if(objValue.selectedIndex == null)
{
sfm_show_error_msg("ERROR: dontselect command for non-select Item");
ret = false;
}
if(objValue.selectedIndex == eval(dont_sel_index))
{
if(!strError || strError.length ==0)
{
strError = objValue.name+": Merci de sélectionner une option ";
}//if
sfm_show_error_msg(strError,objValue);
ret = false;
}
return ret;
}
function TestSelectOneRadio(objValue,strError)
{
var objradio = objValue.form.elements[objValue.name];
var one_selected=false;
for(var r=0;r < objradio.length;r++)
{
if(objradio[r].checked)
{
one_selected=true;
break;
}
}
if(false == one_selected)
{
if(!strError || strError.length ==0)
{
strError = "Merci de sélectionner une option dans "+objValue.name;
}
sfm_show_error_msg(strError,objValue);
}
return one_selected;
}
function validateInput(strValidateStr,objValue,strError)
{
var ret = true;
var epos = strValidateStr.search("=");
var command = "";
var cmdvalue = "";
if(epos >= 0)
{
command = strValidateStr.substring(0,epos);
cmdvalue = strValidateStr.substr(epos+1);
}
else
{
command = strValidateStr;
}
switch(command)
{
case "req":
case "required":
{
ret = TestRequiredInput(objValue,strError)
break;
}//case required
case "maxlength":
case "maxlen":
{
ret = TestMaxLen(objValue,cmdvalue,strError)
break;
}//case maxlen
case "minlength":
case "minlen":
{
ret = TestMinLen(objValue,cmdvalue,strError)
break;
}//case minlen
case "alnum":
case "alphanumeric":
{
ret = TestInputType(objValue,"[^A-Za-z0-9]",strError,
objValue.name+": Only alpha-numeric characters allowed ");
break;
}
case "alnum_s":
case "alphanumeric_space":
{
ret = TestInputType(objValue,"[^A-Za-z0-9\\s]",strError,
objValue.name+": Only alpha-numeric characters and space allowed ");
break;
}
case "num":
case "numeric":
{
ret = TestInputType(objValue,"[^0-9]",strError,
objValue.name+": Only digits allowed ");
break;
}
case "num_/":
case "numeric_d":
{
ret = TestInputType(objValue,"[^0-9\/]",strError,
objValue.name+": Only digits allowed ");
break;
}
case "dec":
case "decimal":
{
ret = TestInputType(objValue,"[^0-9\.]",strError,
objValue.name+": Only numbers allowed ");
break;
}
case "alphabetic":
case "alpha":
{
ret = TestInputType(objValue,"[^A-Za-z]",strError,
objValue.name+": Only alphabetic characters allowed ");
break;
}
case "alphabetic_space":
case "alpha_s":
{
ret = TestInputType(objValue,"[^A-Za-z\\s]",strError,
objValue.name+": Only alphabetic characters and space allowed ");
break;
}
case "alphabetic_d":
case "alpha_d":
{
ret = TestInputType(objValue,"[^A-Za-z\\s]",strError,
objValue.name+": Only alphabetic characters and space allowed ");
break;
}
case "email":
{
ret = TestEmail(objValue,strError);
break;
}
case "lt":
case "lessthan":
{
ret = TestLessThan(objValue,cmdvalue,strError);
break;
}
case "gt":
case "greaterthan":
{
ret = TestGreaterThan(objValue,cmdvalue,strError);
break;
}//case greaterthan
case "regexp":
{
ret = TestRegExp(objValue,cmdvalue,strError);
break;
}
case "dontselect":
{
ret = TestDontSelect(objValue,cmdvalue,strError)
break;
}
case "dontselectchk":
{
ret = TestDontSelectChk(objValue,cmdvalue,strError)
break;
}
case "shouldselchk":
{
ret = TestShouldSelectChk(objValue,cmdvalue,strError)
break;
}
case "selone_radio":
{
ret = TestSelectOneRadio(objValue,strError);
break;
}
}//switch
return ret;
}
function VWZ_IsListItemSelected(listname,value)
{
for(var i=0;i < listname.options.length;i++)
{
if(listname.options[i].selected == true &&
listname.options[i].value == value)
{
return true;
}
}
return false;
}
function VWZ_IsChecked(objcheck,value)
{
if(objcheck.length)
{
for(var c=0;c < objcheck.length;c++)
{
if(objcheck[c].checked == "1" &&
objcheck[c].value == value)
{
return true;
}
}
}
else
{
if(objcheck.checked == "1" )
{
return true;
}
}
return false;
}
/*
Copyright (C) 2003-2008 JavaScript-Coder.com . All rights reserved.
*/
De plus, lorsque je valide le formulaire, celui-ci fait appel à un script php qui me tranforme le formulaire en PDF via la class FPDF.
Comment faire pour qu'il n'affiche que les champs en fonction du choix sélectionné ?
Un grand grand grand merci pour votre aide car là je suis désespéré....et