Нажмите Enter, чтобы отправить форму пароля, работает, если неверно, не работает, если правильно - PullRequest
0 голосов
/ 04 октября 2018

Эта форма пароля работает, как и ожидалось, если пароль неправильный, но если пароль правильный, то нажатие клавиши ВВОД на КЛАВИАТУРЕ не отправляет форму.

Вот код JavaScript:

function TheLogin() {
  var password = 'beyond';
  if (this.document.login.pass.value == password) {
    top.location.href = "streettherapy224984.html";
  } else {
    window.alert("INCORRECT PASSWORD. ACCESS DENIED.");
  }
}

function forceLower(strInput) {
  strInput.value = strInput.value.toLowerCase();
}
<form name="login" style="margin: 5px 0px 0px 0px;">
  <input class="main" type="text" name="pass" size="64" onkeydown="if(event.keyCode==13) document.getElementById('codebtn').click()" style="width: 230px;" onkeyup="return forceLower(this);"><br>
  <div id="spacer20"></div>
  <input class="main" type="button" id="codebtn" value="Submit" onclick="javascript:TheLogin(this.form)">
</form>

Я полностью потерян, поэтому любая помощь в выяснении этого будет очень признательна!

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

У вас есть несколько проблем здесь:

исправить как есть

1. <form ... onsubmit="TheLogin()">
2. <input ... type="submit" id="codebtn"...>

удалить любое нажатие на входе "pass", тип "submit" вызовет функцию "onsubmit", поэтому theLogin

function TheLogin() {
  var password = 'beyond';
  if (this.document.login.pass.value == password) {
    window.location.href = "http://www.tanatu.com/streettherapy224984.html";
  } else {
    alert("INCORRECT PASSWORD. ACCESS DENIED.");
  }
}

function forceLower(strInput) {
  strInput.value = strInput.value.toLowerCase();
}
form {margin: 5px 0px 0px 0px;}
#pass {width: 230px;}
<form name="login" onsubmit="TheLogin()">
  <input class="main" type="text" id="pass" onkeyup="return forceLower(this);">
  <hr>
  <input class="main" type="submit" id="codebtn" value="Submit">
</form>

также

Если вы хотите смоделировать нажатие на ссылку, используйте location.href = URL

Если вы хотите имитировать перенаправление HTTP, используйте location.replace(URL)

0 голосов
/ 04 октября 2018

ну, во-первых.метод не установлен, а также действие.Попробуйте это

<form name="login" method="post" action="javascript:TheLogin(this.form)" style="margin: 5px 0px 0px 0px;">
<input class="main" type="text" name="pass" size="64" style="width: 230px;" ><br>
<div id="spacer20"></div>
<input class="main" type="button" id="codebtn" value="Submit" onclick="javascript:TheLogin(this.form)">
</form>

, потому что все они в форме, нам не нужно устанавливать триггер взаимодействия с клавиатурой.Все взаимодействия обрабатываются с помощью формы, даже если вы нажмете Enter, она будет отправлена ​​без onkeydown.кроме кнопки типа ввода, поэтому для кнопки мы сохраняем функцию thelogin для onClick, чтобы она отправлялась.в javascript мы можем установить warnDefault для обработки формы, чтобы она не отправлялась автоматически.

это краткое объяснение.надеюсь, ты понимаешь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...