Comment puis-je cacher le mot de passe entré par l'intermédiaire d'un JavaScript boîte de dialogue d'invite?
Comment puis-je cacher le mot de passe entré par l'utilisateur dans une boîte de dialogue d'invite de commandes dans le JavaScript? Par exemple, en utilisant quelque chose comme
var passwd = prompt("Enter Password : ", "your password here");
Je voudrais que par exemple quand 12345
est entré, il apparaît comme *****
ou .....
dans la boîte de dialogue.
Quelqu'un peut-il suggérer comment je peux faire ceci ou de fournir un exemple de code?
Vous devez vous connecter pour publier un commentaire.
Vous êtes à la recherche pour le
prompt
fonction?La boîte de dialogue devrait ressembler à quelque chose comme ceci:
Ce que ce n'est probablement pas la meilleure façon d'obtenir le mot de passe d'entrée, parce qu'il ne masque pas l'entrée. Au lieu de cela, envisager l'utilisation d'un formulaire HTML avec un mot de passe champ de saisie.
Peut-être que vous êtes à la recherche pour l'authentification HTTP de base à la place?
Vous pouvez le régler par l'obtention de votre serveur web pour envoyer quelques en-têtes; par exemple en PHP:
Cela va entraîner le client pour afficher une boîte de dialogue comme ceci:
prompt
fonction?Vous ne pouvez pas masquer l'entrée avec un JavaScript
window.prompt()
Envisager l'utilisation d'une INTERFACE utilisateur de jQuery Modal Forme de Dialogue.
http://jqueryui.com/dialog/#modal-form
Vous devez utiliser un élément input de type
password
dans un élément de formulaire:prompt()
, pas un HTML<input>
.La seule façon de bloquer l'entrée d'un mot de passe est d'utiliser
<input type="password">
. Voici un exemple de comment faire pour que le dialogue pop-up:<br>
s à des éléments de style<br>
balises, vous avez raison, j'aurais pu utiliser de marge ou de rembourrage.Il n'y a actuellement aucun moyen de modifier le
prompt()
fonction en JavaScript pour le faire masquer la saisie de texte.Au lieu de cela, nous avons besoin de créer un popup en HTML et de le présenter en cas de besoin. J'ai créé un minimaliste exemple ici:
Très probablement, vous voulez qu'il look comme un pop-up, j'ai donc ajouté un peu de CSS de base pour le faire ici:
Au total, vous obtenez cette démo
Que de nombreuses réponses vous ne pouvez pas masquer l'entrée avec un JavaScript
prompt()
mais une autre façon de faire cette fonctionnalité à l'aide de solution personnalisée ou utiliser la zone de saisie de mot à la place.Utiliser une boîte de dialogue modale à exiger que l'utilisateur d'entrer des données au cours d'un processus multi-étapes. Incorporer un formulaire de balisage de la zone de contenu, définissez l'option modale de vrai, et de spécifier primaire et secondaire actions de l'utilisateur avec l'option boutons.
Ref : Boîte De Dialogue Modale Forme
À l'aide de
html
option vous écrire des balises html.Ref : Impromptu Plugin
Seulement par l'ouverture d'une petite fenêtre contenant un mot de passe champ de formulaire:
Ref : irt.org
Une solution pour moi, bâtie avec l'aide de la ci-dessus et le tutoriel de http://bluebirdjs.com/docs/async-dialogs.html était d'utiliser une fonction async.
Parce que je voulais remplacer l'invite de commandes et de sa logique. Malheureusement, je ne pouvais pas trouver une solution plus facile, mais cela a fonctionné pour moi:
maintenant, avec cela, vous pouvez utiliser l'attendent à l'intérieur d'un async-fonction permettant d'obtenir près le même résultat que la fenêtre.prompt():
vous voyez que ce code presque ressemble à l'utilisation de l'ancienne "invite de commande". La grande différence est que nous avons maintenant utiliser asynchrone-code - de sorte que le code ne s'arrête pas l'exécution en attendant que le mot de passe juste votre asynchrone en fonction attendrai jusqu'à ce que le mot de passe est entré, ou . mais pour moi, il a beaucoup aidé à ne pas réécrire mon code entier de nouveau juste pour le rappel de la fonction et des trucs.
notez que cela ne fonctionne que dans les navigateurs qui prend en charge asynchrone, donc à partir de 2017 en avant. les anciens navigateurs comme sur les anciens ipad ou d'anciennes versions d'ios en général, il ne fonctionnera pas.
si vous voulez vérifier pour le cas où l'utilisateur n'a pas à entrer quoi que ce soit d'utiliser
J'ai essayé de résoudre le même problème de la manière suivante:
Dans la page principale, l'utilisateur doit appuyer sur un bouton pour lancer l'exécution de la demande
en appuyant sur un bouton permet d'ouvrir un popup windows par la commande JavaScript
window.open("password.html","passwordRequest",windowStyleVar)
,où
windowStyleVar
peut être:password.html ressemble:
La
window.opener.processRequest()
appel est très important, car il retourne le contrôle à la page principale de forcer la page principale de javascript pour compléter l'action prévue.