Это потому, что ваша кнопка показать / скрыть пароль отправляет форму.При нажатии кнопки «Показать / скрыть» необходимо запретить отправку формы.
Два возможных решения:
Только с HTML
Измените вашу кнопку на type="button"
.Это предотвратит отправку формы.
let loginPwdStatus = false;
function changePwdView() {
let getLoginInput = document.getElementById("loginPwdChange");
if (loginPwdStatus === false) {
getLoginInput.setAttribute("type", "text");
loginPwdStatus = true;
} else if (loginPwdStatus === true) {
getLoginInput.setAttribute("type", "password");
loginPwdStatus = false;
}
}
<html>
<head>
<meta charset="utf-8" />
<title> Page Title </title>
<meta name="viewport" content="width= device-width, initial-scale=1">
<script src="main.js"></script>
</head>
<body>
<form action="">
<input type="text" name="uid" placeholder="Username">
<input id="loginPwdChange" type="password" name="pwd" placeholder="Password">
<button type="button" onclick="changePwdView()"> Show/Hide </button>
<button type="submit" name="submit"> Login </button>
</form>
</body>
</html>
С JavaScript
Вы можете сделать это с помощью preventDefault()
.
Помните следующее:
- Передавайте параметр
event
в вашу функцию при нажатии кнопки: onclick="changePwdView(event)"
- Не забудьте аргумент в вашем коде JS:
function changePwdView(event) { ... }
- Чтобы предотвратить отправку формы, используйте
event.preventDefault();
let loginPwdStatus = false;
function changePwdView(event) {
event.preventDefault();
let getLoginInput = document.getElementById("loginPwdChange");
if (loginPwdStatus === false) {
getLoginInput.setAttribute("type", "text");
loginPwdStatus = true;
} else if (loginPwdStatus === true) {
getLoginInput.setAttribute("type", "password");
loginPwdStatus = false;
}
}
<html>
<head>
<meta charset="utf-8" />
<title> Page Title </title>
<meta name="viewport" content="width= device-width, initial-scale=1">
<script src="main.js"></script>
</head>
<body>
<form action="">
<input type="text" name="uid" placeholder="Username">
<input id="loginPwdChange" type="password" name="pwd" placeholder="Password">
<button onclick="changePwdView(event)"> Show/Hide </button>
<button type="submit" name="submit"> Login </button>
</form>
</body>
</html>