Si ceci est votre balisage exacte, vous pouvez le faire. Notez également que cette mise à jour fonctionne réellement sur différents navigateurs. Étant donné que votre case n'a pas une carte d'identité, je me sers d'un sélecteur de frères et soeurs pour y accéder par son étiquette parent p
:
jQuery(function($){ // DOM Ready
$("#passwordID + p input").click(function(){
var new_type = $(this).is(':checked') ? "text" : "password",
pwd = $("#passwordID"); // We keep replacing it, so find it again
if(pwd.attr('type') !== new_type){
pwd.replaceWith(
$("<input />", {type: new_type, value: pwd.val(), id: "passwordID", name: "PasswordName"})
);
}
}).click(); // Trigger it once on load in case browser has remembered the setting
});
Demo on JSBin
Je crois que cela ne fonctionnera pas correctement dans IE. – SLaks
Assurez-vous de tester cela dans IE, car il ne vous permettra pas de le faire, au moins pas comme vous l'avez, vous devrez supprimer/ajouter un élément d'entrée, le type est immuable dans IE :) –