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