Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Controle de formulaire [ JavaScript Orienté objet (POO) / Function & Méthodes ] (matsay81)

mercredi 20 juin 2007 à 11:33:26 | Controle de formulaire

matsay81

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
[code]
<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>
[/code]
Quelqu'un peut-il m'aider?
Merci
Mathieu


mercredi 20 juin 2007 à 11:58:41 | Re : Controle de formulaire

the_wwt

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


mercredi 20 juin 2007 à 14:10:30 | Re : Controle de formulaire

bultez

Membre Club




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";
        
document.misejour.client_origine.style.backgroundColor="#FF6600";
        
document.misejour.client_origine.focus(); }
if (document.misejour.client_nom.value.length==0)
    {    lib+="\r\nVeuillez noter le nom du client"; 
        
document.misejour.client_nom.style.backgroundColor="#FF6600";  
        
document.misejour.client_nom.focus(); }
...

if ( lib.length > 0 )
       { alert (lib);
         return false;   }
else   { return true;   }



( une fonction peut bien sûr remplacer ça )


Cordialement                Bul     [mon Site]     [M'écrire]




mercredi 20 juin 2007 à 14:37:28 | Re : Controle de formulaire

matsay81

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

mercredi 20 juin 2007 à 14:49:11 | Re : Controle de formulaire

bultez

Membre Club




>>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...


Cordialement                Bul     [mon Site]     [M'écrire]




mercredi 20 juin 2007 à 15:31:23 | Re : Controle de formulaire

matsay81

Et comment fait-on pour remplir un label vide, je n'y arrive pas ??

mercredi 20 juin 2007 à 15:34:26 | Re : Controle de formulaire

the_wwt

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

mercredi 20 juin 2007 à 17:09:56 | Re : Controle de formulaire

matsay81

Super tout marche, Merci à tous



Cette discussion est classé dans : document, return, false, obligatoire, selectchantier


Répondre à ce message

Sujets en rapport avec ce message

Facile pour vous (bouton radio) ! [ par nougitch ] Bonjour, Mon problème : je veux que quand aucun des boutons radio n'est sélectionné, il y ait une erreur ! Or là, quand je sélectionne le premier, c' Problème de formulaire [ par beku ] Bonjour à tous !J'ai n problème avec ce formulaire : quand je clicke sur mon bouton de validation, j'ai l'impression que le navigateur ne lance pas la Désactiver la sélection d'un texte [ par GanJasTeR ] Bonjour.J'aimerais obliger les visiteurs de mon site à rentrer un code de confirmation se trouvant sur la page d'inscription.Généralement ce code est document.getElementById marche pas [ par hackademius ] salut a tous , j'ai un ptit probleme et j'ai pas trouvé de solutions ici Dans mons cript javascipt j'ai   : isIE = (document.all)?true:false;          probleme 2 formulaires dans un pages + champs obligatoires [ par ludobiohazard ] Bonjour, J'ai un petit soucis, j'ai deux formulaires bien disctincts dans une page. Tous les champs sont obligatoires sur chaque formulaire.Lorsqu'il acces au champ d un formulaire par variable [ par Poulipe ] Bonjour,je cherche mais sans resultat comment remplacer ca :if(document.contact.interet_1.checked!=false){ ++temoin;}if(document.contact.interet_2.che Diaporama Javascript [ par Dominike ] - Dominike -Bonjour à tous !Je vous soumet un petit problème que je n'arrive pas à résoudre seul.J'ai récupéré un Javascript sympa pour créer un diapo Y a un problême. [ par sschupp ] Date function verif() { res = false res2 = true if (this.form.annee1 > this.form.annee2) return res; if (window.document.f verification formulaire avec test() [ par ygsi5355 ] J'avais une vérification qui fonctionnait bien.J'ai ajouté || (/^[0-9] {10}$/.test(document.quizz.tel.value))pour vérifier qu'il y a uniquement 10 chi Tester le champ d'un formulaire [ par matlocker ] Bonjour a tous,je viens de creer un fomulaire ou l'on doit saisir le nom d'un championnat, le nb d'equipe et le nombre de journee. Et j'aimerai tester


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,234 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.