matsay81
Messages postés16Date d'inscriptionjeudi 23 mars 2006StatutMembreDernière intervention10 juillet 2008
-
20 juin 2007 à 11:33
matsay81
Messages postés16Date d'inscriptionjeudi 23 mars 2006StatutMembreDernière intervention10 juillet 2008
-
20 juin 2007 à 17:09
Bonjour,
Voilà je viens de créer un formulaire, et un script de controle.
Maintenant je voudrais l'améliorer mais j'ai un petit souci.
Actuellement, il me controle une chose après l'autre et me change la couleur de fond de l'imput.
Je souhaite qu'il controle tout d'un coup et que des label soit marqué à côte de tous les elements manquants.
voilà mon script
<script language="JavaScript">
<!--
var selectchantier_type=0;var selectchantier_annee=0;var selectchantier_energie=0;var select_financement=0;
function logement(){selectchantier_type=1;}
function annee(){selectchantier_annee=1;}
function energie(){selectchantier_energie=1;}
function pret() {select_financement=1;}
function verifieforma(document)
{
if (!Obligatoire(document.misejour.client_origine,"\nVeuillez noter l'origine du contact\n\n"))return false;
if (!Obligatoire(document.misejour.client_nom,"\nVeuillez noter le nom du client\n\n"))return false;
if (!Obligatoire(document.misejour.client_nom_voie,"\nL'adresse est manquante\n\n"))return false;
if (!Obligatoire(document.misejour.client_cp,"\nLe code postal n'est pas renseigné ou incomplet\n\n"))return false;
if (!Obligatoire(document.misejour.client_ville,"\nLa ville du client n'est pas renseigné ou incomplet\n\n"))return false;
if (!Obligatoire(document.misejour.client_tel,"\nLe numéro de téléphone n'est pas renseigné ou incomplet\n\n"))return false;
if (selectchantier_type==0){ alert ("\nDe quel type de logement s'agit-il? :\n\n- Appartement & habitation collectif ?\n- Maison individuelle ?\n\n");return(false);}
if (selectchantier_annee==0){ alert ("\nQuel est l'année de construction du logement ? :\n\n- Avant 1975 ?\n- Après 1975 ?\n\n");return(false);}
if (selectchantier_energie==0){ alert ("\nQuelle est l'énergie principale après travaux ? :\n\n- Electricité ?\n- Combustible ?\n\n");return(false);}
if (select_financement==0){ alert ("\nLa prestation travaux fait-elle l'objet d'un financement ? :\n\n- Oui ?\n- Non ?\n\n");return(false);}
if (!Obligatoire(document.misejour.chantier_surface,"\nLa surperficie du logement n'est pas renseigné\n\n"))return false;
if (!Obligatoire(document.misejour.chantier_pieces,"\nLe nombre de pièce principale n'est pas renseigné\n\n"))return false;
if (!Obligatoire(document.misejour.chantier_date_fin,"\nLa date de fin de chantier n'est pas renseigné ou incomplète\n\n"))return false;
}
function Obligatoire(MonInput, MonMessage)
{
if (MonInput.value == "")
{
alert("\n"+MonMessage);
MonInput.style.backgroundColor="#FF6600";
MonInput.focus();
return false;
}
return true;
}
</script>
the_wwt
Messages postés177Date d'inscriptionjeudi 5 octobre 2006StatutMembreDernière intervention16 janvier 20091 20 juin 2007 à 11:58
Bonjour,
une petite piste:
Tu déclares un tableau contenant des entrées de type tableau de cette forme [inputHtml, message d'erreur].
Dans ta fonction de controle, tu parcours ce tableau et tu affiche le message à coté ou en dessous (enfin ou t'as de la place).
Un exemple ci dessous:
var controles = [ [document.misejour.client_origine, "Veuillez noter l'origine du contact"], [document.misejour.client_nom, "Veuillez noter le nom du client"]];
function ctrl(){
for(var i = 0; i < controles.length; i++){
if( controles[i][0].value.length == 0 ){
/* Je le place à coté */
var div = document.createElement('div');
var s = div.style;
s.position = 'absolute';
s.top = controles[i][0].style.top;
s.left = (controles[i][0].style.offsetLeft + controles[i][0].style.clientWidth + 5) + 'px';
div.innerHTML = controles[i][1];
controles[i][0].parentNode.appendChild( div );
controles[i][0]..style.backgroundColor="#FF6600";
}
}
}
Bon le positionnnement ne marchera pas mais à toi de plancher là dessus.
Bien cordialement,
Pierrick
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 20 juin 2007 à 14:10
Bonjour,
au lieu de :
if (!Obligatoire(document.misejour.client_origine,"\nVeuillez noter l'origine du contact\n\n"))return false;
if (!Obligatoire(document.misejour.client_nom,"\nVeuillez noter le nom du client\n\n"))return false;
...
mettre :
var lib= ""
if (document.misejour.client_origine.value.length==0)
{ lib+="\r\nVeuillez noter l'origine du contact";
matsay81
Messages postés16Date d'inscriptionjeudi 23 mars 2006StatutMembreDernière intervention10 juillet 2008 20 juin 2007 à 14:37
Merci de votre rapidité,
Alors je viens d'essayé vos 2 solutions, la première je n'arrive pas à la faire marché,
la deuxième c'est nikel mais je voudrais aussi qu'il me mette un commentaire à côté de chaque élément manquant.
Merci encore
Mathieu
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 20 juin 2007 à 14:49
>>mais je voudrais aussi qu'il me mette un commentaire à côté de chaque élément manquant.
comment tu faisais ça dans ta version ?
c'est quoi comme commentaire ?
mais pour ça
mets des <label> vides et remplis les
mets des champs cachés et montre les
regarde du coté des ...child... qui permettent d'ajouter en dynamique
....etc...
the_wwt
Messages postés177Date d'inscriptionjeudi 5 octobre 2006StatutMembreDernière intervention16 janvier 20091 20 juin 2007 à 15:34
Désolé si ma réponse ne marche pas tu as une erreur pour l'info?
Pour mêttre du texte dans le label (ou autre élément XML) utilise innerHTML...
document.getElementById('id_du_label').innerHTML = 'Veuillez noter l'origine du contact';
Codialement