Maison > Article > interface Web > Solution à l'erreur lors de la modification de l'attribut type d'entrée sous les compétences IE8_javascript
Résumé :
Il existe désormais une exigence comme le montre l'image. Lorsque l'utilisateur coche la case Afficher le texte clair, le mot de passe saisi par l'utilisateur doit être affiché en texte clair. Lorsque la case est supprimée, elle doit être modifiée. pour chiffrer le texte. La première chose qui me vient à l'esprit est de modifier le type de zone de saisie pour décider d'afficher du texte brut ou du texte chiffré. Utilisez l'attr de jQuery pour faire le test. tout va bien, mais une erreur sera signalée ci-dessous ie8. J'ai trouvé la raison pour laquelle la modification de l'entrée n'est pas autorisée dans ie8. L'attribut type a finalement été implémenté en utilisant une approche différente.
Lorsque Afficher le texte brut est coché, remplacez la zone de saisie par type="text". Lorsqu'elle n'est pas cochée, remplacez la zone de saisie par type="mot de passe".
<!DOCTYPE html> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <script src="jquery.min.js"></script> </head> <body> <span id="pass"><input name="password" type="password"></span><label><input type="checkbox" id="show-password">显示明文</label> <script> $('#show-password').click(function() { var inp,cname,val; if(this.checked) { inp = $('#pass').children('input'); cname = inp.attr('name'); val = inp.val(); $('#pass').html('<input name="'+cname+'" value="'+val+'" type="text">'); } else { inp = $('#pass').children('input'); cname = inp.attr('name'); val = inp.val(); $('#pass').html('<input name="'+cname+'" value="'+val+'" type="password">'); } }); </script> </body> </html>
Cet article n'a aucun contenu technique, mais ce type d'interaction existe toujours. Cet article est principalement écrit pour considérer les problèmes de compatibilité sous IE8. Si vous avez ce genre d'interaction dans votre projet, vous pouvez vous y référer, ou si vous avez une meilleure méthode, vous pouvez la partager avec moi.