Ajouter du texte dynamique

Résolu
cs_nuns Messages postés 87 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 23 juillet 2009 - 15 août 2007 à 14:02
cs_nuns Messages postés 87 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 23 juillet 2009 - 15 août 2007 à 19:06
Bonjour,


Je suis en entrain de faire un formulaire,

et je voulais quand il y a la vérification en JavaScript qu'il ajoute du texte
rouge "le champs est vide veuilles le remplir" au-dessus du champs ou
sais vide.



 




Donc voici des morceaux de code que j'ai.



code HTML
<form action="?page=Admin&amp;amp;action=send" method="post" id="formrequest" onSubmit="return checkform('formrequest');">
<dl>
<dt>First Name:</dt>
<dd id="firstName-dd">
<input name="firstName" type="text" class="edit" size="30" />
</dd>

<dt>Last Name:</dt>
<dd>
<input name="lastName" type="text" class="edit" size="30" />
</dd>
</dl>

<input type="submit" value="submit" class="submit" />
</form>


JavaScript
function checkform($formulaire){
var $mail = '';
var $result = false;

//firtName
if(document.forms[$formulaire].elements['firstName'].value == "") {

   			document.forms[$formulaire].elements['firstName'].focus();
   			$result = false;
addHTML(document.forms[$formulaire],'Veuillez entrer votre lieu de résidence!');
  		}

//lastName

//Company

//mail
$mail = document.forms[$formulaire].elements['email'].value;
$result = verifiermail($mail);

//Phone Number

return $result;
}

function verifiermail(mail) {
if ((mail.indexOf("@")>=0)&amp;&amp;(mail.indexOf(".")>=0)) {
return true
} else {
alert("Mail invalide !");
return false
}
}

function addHTML(element, HTML) {
var o = document.createElement("div");
o.innerHTML = HTML;
element.appendChild(o)
}

7 réponses

cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
15 août 2007 à 16:30
Bonjour,

   



var o = element.getElementById("toto");
document.getElementByID plutôt

et dans ce cas element est inutile, comme appendChild puisqu'il existe.

addHTML('Hello');
function addHTML(HTML) {
var o = document.getElementById("toto");
o.innerHTML = HTML;
}











o~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~o 
| Avec | et mieux : <label style ="color: rgb(0, 128, 0);">Télécharger</label> | 
|~~~~~~~~~~~~~~~~~|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|~~~~~~~~~~~~~~~~| 
|<label style="color: rgb(128, 0, 0);">FireFox</label> |regarder la "console d'erreurs" | FireBug
| | Outils / Console d'erreurs | | 
|~~~~~~~~~~~~~~~~~|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|~~~~~~~~~~~~~~~~| 
|<label style="color: rgb(128, 0, 0);">Internet Explorer</label>|activer le deboggage : utils/options Ile Debogger IE | 
| | dans la liste, sous "Navigation" : décocher | | 
| | ° Afficher une notification de chaque erreur de script | | 
| | ° Désactiver le débogage de Scripts (autres applications)| | 
| | ° Désactiver le débogage de Scripts (Internet Explorer) | | 
o~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~o

ça aide "pas mal"











<hr />
                Cordialement            Bul         [mon Site]     [M'écrire]
<hr />


                                    Généralement, c'est absurde de généraliser.
3
cs_nuns Messages postés 87 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 23 juillet 2009
15 août 2007 à 19:06
J'ai trouvé.

        if($formulaire.elements['firstName'].value == "") {
               $formulaire.elements['firstName'].focus();
               $result = false;
            addHTML('Hello
');
          }else{
            addHTML('');
          }
         

Merci a Bultez
3
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
15 août 2007 à 14:31
Bonjour,

    foultitude solutions ( comme toujours )

    on pourrait, devant ces champs, mettre <label id="toto" style="display:none;color:red">texte de l'erreur</label>
    et en cas d'erreur faire : document.getElementById("toto").style.display="inline";
       c'est une exemple, il y a d'autres possibilités.

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]<hr />

                                                    Généralement, c'est absurde de généraliser.
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
15 août 2007 à 14:40
j'ai oublié de dire que bien entendu (?)
    le texte de l'erreur peut-être "dynamique"
   
                 document.getElementById("toto").innerHTML="le texte voulu";


<hr />
                Cordialement          Bul         [mon Site]     [M'écrire]
<hr />


                                    Généralement, c'est absurde de généraliser.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
15 août 2007 à 15:00
ah, mais je n'avais pas tout vu....

<form action= "?page=Admin&amp;action=send" method="post"
        id="formrequest"
        onSubmit="return checkform(this);">
    * First Name:
    :
       
   
    * Last Name:
    :

       
   

   
</form>

<script>
    function checkform($formulaire)
    {
        var $mail = '';
        var $result = false;
        if($formulaire.firstName.value=="") {
               $formulaire.firstName.focus();
               $result = false;
            addHTML($formulaire,'Veuillez entrer votre lieu de résidence!');
          }
        /*
        $mail = $formulaire.email.value;            j'ai éliminé
        $result = verifiermail($mail);                  car email non décrit
        */
        return $result;
    }
    function verifiermail(mail) {
        if ((mail.indexOf("@")>=0)&&(mail.indexOf(".")>=0)) {        
            return true
        } else {
            alert("Mail invalide !");
            return false
        }
    }

    function addHTML(element, HTML) {
        var o = document.createElement("div");
        o.innerHTML = HTML;
        element.appendChild(o)
    }
</script>

<hr />                Cordialement                Bul             [mon Site]         [M'écrire]<hr />                       

Généralement, c'est absurde de généraliser.
0
cs_nuns Messages postés 87 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 23 juillet 2009
15 août 2007 à 16:09
je devients fou....

regarde ce que j'ai fais
<form action="?page=Admin&amp;action=send" method="post" id="formrequest" onSubmit="return checkform(this);">

<label for="" id="toto">
</label>

<input name="firstName" type="text" class="edit" size="30" />

<input type="submit" value="submit" class="submit" />
</form>

JAVASCRIPT

function checkform($formulaire){
var $result = false;

//firtName
if($formulaire.elements['firstName'].value == "") {
$formulaire.elements['firstName'].focus();
$result = false;
addHTML($formulaire,'Hello');
}

//lastName

//Company

//mail
/*$mail = document.forms[$formulaire].elements['email'].value;
$result = verifiermail($mail);
*/
//Phone Number

return $result;
}

function addHTML(element, HTML) {
var o = element.getElementById("toto");
o.innerHTML = HTML;
element.appendChild(o)
}
 
0
cs_nuns Messages postés 87 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 23 juillet 2009
15 août 2007 à 17:48
Merci, beaucoup, sa fonctionne.. je voulais sa savoir si c'est possible d'enlenver le text ? que j'ai rajouté s'il y a quelque chose dedant dans le champ. tu vois ce que je veux dir ?

Merci encore de la papiditée.
0
Rejoignez-nous