如何隐藏通过JavaScript对话框提示输入的密码?

Pra*_*ani 27 javascript passwords

如何在JavaScript中的对话框提示中隐藏用户输入的密码?例如,使用类似的东西

var passwd = prompt("Enter Password : ", "your password here");
Run Code Online (Sandbox Code Playgroud)

我希望在12345输入eg时,它看起来像*****.....在对话框中.

任何人都可以建议我如何做到这一点或提供一些示例代码?

Dag*_*bit 16

你在寻找这个prompt功能吗?

var response = prompt("What is your name?");

alert("Hello, " + response);
Run Code Online (Sandbox Code Playgroud)

对话框看起来像这样:

在此输入图像描述

这可能不是获取密码输入的最佳方式,因为它不会屏蔽输入.相反,请考虑使用带有密码输入字段的HTML表单.


也许您正在寻找基本的HTTP身份验证?

您可以通过让您的Web服务器发送一些标题来设置它; 例如使用PHP:

<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
    header('WWW-Authenticate: Basic realm="My Realm"');
    header('HTTP/1.0 401 Unauthorized');
    echo 'Text to send if user hits Cancel button';
    exit;
} else {
    echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
    echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>";
}
?>
Run Code Online (Sandbox Code Playgroud)

这将导致客户端显示如下对话框:

在此输入图像描述


Oun*_*ess 11

您无法使用JavaScript屏蔽输入 window.prompt()

考虑使用jQuery UI模式表单对话框.

http://jqueryui.com/dialog/#modal-form

  • @CharlesJohnThompsonIII如果他不了解它,这将是一个可能的解决方案 (20认同)
  • 没有jQuery标签,请不要建议使用它. (9认同)
  • 谢谢@TimeSheep.这就是为什么我用'考虑'这个词. (4认同)

Zac*_*ier 8

目前无法prompt()在 JavaScript 中编辑该函数以使其隐藏文本输入。

相反,我们需要在 HTML 中创建一个弹出窗口并在需要时显示它。我在这里创建了一个极简主义的例子:

var promptCount = 0;
window.pw_prompt = function(options) {
    var lm = options.lm || "Password:",
        bm = options.bm || "Submit";
    if(!options.callback) { 
        alert("No callback function provided! Please provide one.") 
    };

    var prompt = document.createElement("div");
    prompt.className = "pw_prompt";

    var submit = function() {
        options.callback(input.value);
        document.body.removeChild(prompt);
    };

    var label = document.createElement("label");
    label.textContent = lm;
    label.for = "pw_prompt_input" + (++promptCount);
    prompt.appendChild(label);

    var input = document.createElement("input");
    input.id = "pw_prompt_input" + (promptCount);
    input.type = "password";
    input.addEventListener("keyup", function(e) {
        if (e.keyCode == 13) submit();
    }, false);
    prompt.appendChild(input);

    var button = document.createElement("button");
    button.textContent = bm;
    button.addEventListener("click", submit, false);
    prompt.appendChild(button);

    document.body.appendChild(prompt);
};

pw_prompt({
    lm:"Please enter your password:", 
    callback: function(password) {
        alert("Your password is: " + password);
    }
});
Run Code Online (Sandbox Code Playgroud)

很可能您希望它看起来像一个弹出窗口,所以我在这里添加了一些基本的 CSS:

.pw_prompt {
    position:fixed;
    left: 50%;
    top:50%;
    margin-left:-100px;
    padding:15px;
    width:200px;
    border:1px solid black;
}
.pw_prompt label {
    display:block; 
    margin-bottom:5px;
}
.pw_prompt input {
    margin-bottom:10px;
}
Run Code Online (Sandbox Code Playgroud)

总之,你得到了这个演示


Ara*_*yan 3

您应该password在表单元素中使用带有type的input 元素:

<input name="myPass" id="myPass" type="password" />
Run Code Online (Sandbox Code Playgroud)

  • 他要求如何在Javascript` prompt()`中执行此操作,而不是HTML` <input>`. (41认同)
  • 并且没有办法单独用javascript做他所要求的事情,所以他们提供替代品. (5认同)