2010-07-22 9 views
2

Je travaille avec un simple jQuery pour ajouter des événements onfocus/onblur à un formulaire généré. Le code suivant fonctionne dans d'autres navigateurs, à l'exception IE7/8:jQuery .attr() ne fonctionne pas dans IE

$(document).ready(function(){ 
    $("input#edit-submitted-first-name").attr('onfocus', "if(this.value=='First Name') this.value = ''"); 
    $("input#edit-submitted-first-name").attr('onblur', "if(this.value=='') this.value = 'First Name'"); 
}); 

Dans la source IE, son même pas l'ajouter aux entrées. Y at-il un bug IE à ce sujet?

Répondre

6

Je ne pense pas que les événements sont censés être affectés de cette façon.

Pourquoi ne pas utiliser

$("input#edit-submitted-first-name").focus(function(){ if (this..... 
$("input#edit-submitted-first-name").blur(function(){ if (this..... 

?

+2

+1 à droite .. c'est soit ça soit $ ("sélecteur"). Bind ('focus', fonction) .. – Fosco

+0

La partie focus fonctionne, mais le flou n'est pas – Kevin

+1

@Kevin pouvez-vous montrer du code? Ça devrait marcher. –

0

essayer cette

$('input#edit-submitted-first-name').focus(function() { 

    if($(this).val()=='First Name') 
       $(this).val('') 

    }); 

    $('input#edit-submitted-first-name').blur(function() { 

    if($(this).val()=='') 
       $(this).val('First Name') 

    }); 
1

sur IE8 en mode de compatibilité que cela fonctionne:

$(document).ready(function(){ 
    $("#edit-submitted-first-name").focus(function(){ 
     if(this.value=='First Name') this.value = ''; 
    }); 
    $("#edit-submitted-first-name").blur(function(){ 
     if (this.value=='') this.value = 'First Name'; 
    }); 
}); 

voir en action ici: http://jsfiddle.net/w9pWk/

REMARQUE: Cette fonctionnalité est très similaire au filigrane plug-in trouvé ici: http://code.google.com/p/jquery-watermark/ mais bien sûr, manquant certaines des fonctionnalités qui fournit dans la facilité d'utilisation, la population de terrain initiale, la logique de ne pas remplacer si les données sont entrées etc., vous obtenez avec le plug-in.