當我用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開發人員則選擇同時處理這兩個請求。 –