Javascript 如何改进我的脚本,使其不显示带有用户名字段的密码字段

Javascript 如何改进我的脚本,使其不显示带有用户名字段的密码字段,javascript,html,Javascript,Html,所以我正在做的是一个脚本,在您编写它时,在登录按钮中实时显示您的用户名。我的问题是,现在的脚本显示密码以及显然,这是不能容忍的。 另外,我如何改进我的代码,以便在用户名字段中使用backspace时,我可以按住它,它仍然实时显示在该按钮中。由于我使用的是window.onkeyup,目前它只是从按钮上删除了一个字符 这是我现在的代码 HTML: 将onkeyup处理程序附加到输入,而不是窗口 document.getElementById('nameinput').onkeyup = funct

所以我正在做的是一个脚本,在您编写它时,在登录按钮中实时显示您的用户名。我的问题是,现在的脚本显示密码以及显然,这是不能容忍的。 另外,我如何改进我的代码,以便在用户名字段中使用backspace时,我可以按住它,它仍然实时显示在该按钮中。由于我使用的是
window.onkeyup
,目前它只是从按钮上删除了一个字符

这是我现在的代码

HTML:


onkeyup
处理程序附加到输入,而不是窗口

document.getElementById('nameinput').onkeyup = function ...

每次聚焦name字段时,usr_name函数都会附加一个新的事件处理程序。也许您可以将该代码改为
onload

这可以解决密码问题:


您真的应该从HTML中获取所有这些样式。即使是嵌入的
样式
标记也比内联标签好,因为它的可读性很好。为什么你要听
窗口
上的所有按键(而不仅仅是名称输入),为什么要累积它们(而不仅仅是获取输入的当前
。值
)?
getElementById
不带选择器,输入甚至没有id。
var key
有什么问题?不,你关于
onload
的说法是完全错误的。@Bergi我关于
onload
的说法是错误的,没错。很抱歉
getElementById
接受一个简单的字符串,这是一个输入错误。至于
var-key
我在理解其目的之前就下了结论,为什么
var-key
会出现在
usr\u name()
中?我相信有很多方法可以进一步简化代码。我主要是想回答这些问题。啊,非常感谢!对此我非常感激!:)这真的解决了我的问题,让我意识到我在那里添加了多少无用的行。
function usr_name() {
    var key = "";
    window.onkeyup = function (e) {
        if (e.keyCode == 8) {
            var lenght = key.lenght;
            key = key.slice(0, -1);
        } else {
            key = key + String.fromCharCode(e.keyCode);
        }
        write(key);
    }
}

function write(key) {
    key = key.toLowerCase();
    key = key.charAt(0).toUpperCase() + key.slice(1);
    var text = "Login with name: " + key;

    document.getElementById("button").value = text;
}

function onload() {
    document.getElementById("button").value = "Login with name: ";
}
document.getElementById('nameinput').onkeyup = function ...
<input type="text" name="usrname" id="usrname" ...

document.getElementById('usrname').onkeyup = function (e) {
function usr_name() {
    var key;

    document.getElementById('usrname').onkeyup = function (e) {
        key = this.value;
        write(key);
    }
}

function write(key) {
    key = key.toLowerCase();
    key = key.charAt(0).toUpperCase() + key.slice(1);
    var text = "Login with name: " + key;

    document.getElementById("button").value = text;
}