我不知道如何将以下条件反应链接到passid表单输入id:
我不知道将document.querySelector放在何处,以便索引的contion-reactions将与之关联.
这是代码:
- <!doctype html>
- <html>
- <head>
- <Meta charset="utf-8">
- <title>Password - form</title>
- </head>
- <body>
- <form>
- <label>Password</label>
- <input type="password" id="passid" />
- <br>
- <input type="submit" value="Sign In" />
- </form>
- <script>
- function passType() {
- var password = ["p1","p2","p3","p4","p5"];
- if (password.indexOf > -1) {
- alert("That's great! Thank you!");
- } else {
- alert("Wrong,try again");
- }
- if (password.indexOf > -1) {
- alert("It's wrong,you have one more try...");
- } else {
- alert("Get out now!");
- window.close();
- }
- }
- passType();
- </script>
- </body>
- </html>
解决方法
我想你问的是如何获得用户输入密码字段的值.那是document.getElementById(“passid”).value.所以你会写:
- if (password.indexOf(document.getElementById("passid").value) > -1) {
- alert("That's great! Thank you!");
- }
请注意,在脚本的顶级调用passType()将不起作用.这将在首次加载页面时运行,而不是等待用户填写密码.您应该在用户提交表单时调用它.你应该做:
- document.querySelector("form").addEventListener("submit",passAll);
您还应该更改passAll()函数,以便在用户输入错误密码时调用Event.preventDefault(),以防止提交表单.看到
return false on addEventListener submit still submits the form?
此外,在客户端Javascript中检查密码不是很安全.没有什么能阻止用户修改脚本或绕过脚本.应在服务器上检查密码,以便用户无法覆盖密码.