当我用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开发人员则选择同时处理这两个请求。 –