有人就这个主题提出了几个问题,但没有人回答这个问题。
基本上,对于我正在开发的这个应用程序。当用户注册时,用户必须在一个<input>
字段中输入密码,然后在另一个输入字段中重新键入。
我使用JavaScriptDOM操作来做两件事:
- 如果确认的密码与初始密码不同,则提醒用户
- 当密码相同时,将按钮的禁用属性从
false
更改为true
为此,我在用户确认密码的输入字段中添加了一个事件侦听器。在这个事件侦听器中,有一个条件语句用于评估两个密码字段是否相同。此事件侦听器可在我的Chrome浏览器和iPhone 6 Safari浏览器上使用oninput
和onkeyup
。它在我的iPad Safari浏览器上不起作用(我认为这是一个旧版本(。
const password2 = document.getElementById("password2");
const password = document.getElementById("password");
password2.addEventListener("keyup", () => {
if (password2.value === password.value) {
document.getElementById("registerButton").className = "btn btn-success w-100 submit-button"
document.getElementById("registerButton").disabled = false;
document.getElementsByClassName("showAlert")[0].setAttribute("class", "hideAlert");
} else {
document.getElementById("registerButton").className = "btn btn-secondary w-100 submit-button disabled"
document.getElementById("registerButton").disabled = true;
document.getElementsByClassName("hideAlert")[0].setAttribute("class", "showAlert");
}
});
首先,对于这个问题,我应该使用什么事件监听器(如果有的话(?如果没有,我还应该寻找其他途径?
最后,有没有更好的写法?看起来有点笨重而且不业余。
谢谢!
请参阅iOS 9-keyup事件未启动
对于触摸屏设备,通常keypress
工作得更频繁,但有人建议在keyup
和keypress
中添加相同的功能,但如果它对您有效,keydown
应该可以,所以
const password2 = document.getElementById("password2");
const password = document.getElementById("password");
password2.addEventListener("keyup", eventify);
password2.addEventListener("keypress", eventify);
//OR simply
password2.addEventListener("keydown", eventify);
函数eventy(({if(password2.value==password.value({document.getElementById("registerButton"(.className=";btn-btn-successw-100提交按钮";document.getElementById("registerButton"(.disabled=false;document.getElementsByClassName("showAlert"([0]。setAttribute("class","hideAlert"(;}其他{document.getElementById("registerButton"(.className=";btn-btn-secondary w-100提交按钮被禁用";document.getElementById("registerButton"(.disabled=true;document.getElementsByClassName("hideAlert"([0]。setAttribute("class","showAlert"(;}}