Salut a tous,
j'ai un peu de mal avec jquery,

voila j'essaie de faire une fonction que lorsqu'un internaute clique sur un champ alors le texte disparait et si l'internaute clique ailleur alor on verifie si le texte est different de la valeur initiale et suivant ca le champ affiche le texte correspondant.

J'y suis presque seulement je voudrais que ma fonction marche pour tous les champs et non un seul donc j'ai voulu passer la valeur par defaut en parametres mais j'ai une erreur (e.nodeName is undefined) et je n'arrive pas a avancer:

$(document).ready(function(){

    //Callback
    var callback = $("#callback input[name=phone_number]");
    var callback_default = callback.val();

    function myClick(myvar){
        val = $(this).val();         
        if(val == myvar)
        {
            $(this).val('');
        }  
    }

    function myBlur(myvar){
        val = $(this).val();
        if(val == '')
        {
            $(this).val(myvar);
        }  
    }
    callback.click(myClick(callback_default));
    callback.blur(myBlur(callback_default));

});

Merci pour votre aide

2 réponses


Grafikart
Réponse acceptée

Voila ma version, la fonction vide tous les champs qui ont la class autoempty :

/* Autovide les champs */
$('.autoEmpty').each(function(){
            var defaultValue = $(this).val();
            $(this).focus(function(){
                    if($(this).val()==defaultValue){
                            $(this).val('');
                    }
            });
            $(this).blur(function(){
                    if($(this).val()==''){
                            $(this).val(defaultValue);
                    }
            });
});
charlo14
Auteur

Merci Grafikart, c'est vraiment pratique comme sulution.