Когда я отправляю форму с помощью Enter, она работает без проблем. Я могу успешно войти в систему. Когда я отправляю форму с помощью кнопки, она успешно регистрируется в Firefox, но не в Chrome. Проблема в том, что он повторяет эту функцию дважды и отправляет другой хешированный пароль. Как я могу заставить его работать и с Chrome?Отправить функцию вызова два раза
Кнопка:
<div id="submit" name="submit" value="login" class="ui fluid large pink submit button" onclick="submitForm();">Login</div>
Форма:
<form id="form" autocomplete="off" class="ui large form" id = "form" name="form" method="post" action="php/verify.php" onsubmit="submitForm();">
Я добавил onsubmit="submitForm();"
в форме, чтобы вызвать функцию, даже когда я отправить форму с Enter
. Функция
Javascript:
function submitForm(){
var form = document.getElementById("form");
var pwd = document.getElementById('pwd');
var hash = new jsSHA("SHA-256", "TEXT", {numRounds: 1});
hash.update(pwd.value);
var hash = hash.getHash("HEX");
var password = document.createElement("input");
password.name="password";
password.type="hidden";
password.id = "password";
password.value = hash;
alert(password.value);
form.appendChild(password);
form.submit();
pwd.value = "";
}
Простое решение. Оно работает. Благодаря! – Mirakurun
Можете ли вы объяснить, почему мой код работал в Firefox, но не в Chrome? – Mirakurun
Я не уверен на 100%, но я предполагаю, что, поскольку отправка формы означает, что браузер перейдет на новый ресурс, что случилось, вы сказали браузеру загрузить другую страницу дважды, быстро. Возможно, Firefox отменяет первый запрос, как только произойдет вторая, в то время как разработчики Chrome решили обработать оба. –