gpt4 book ai didi

javascript - 在提交表单之前追加元素

转载 作者:行者123 更新时间:2023-11-30 15:48:18 25 4
gpt4 key购买 nike

我想在提交到服务器之前在客户端散列我的密码(我有我自己的理由,我知道我在做什么)。我正在使用 jsSHA(它有效,我提醒输出)来散列密码。

我创建了一个新元素,将散列密码分配给它的值并将其附加到表单。但是表单仍然没有提交。

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/jsSHA/2.0.2/sha.js"></script>
<form id = "form" name="form" method="post" action="verify.php" class="login">
Username: <input type="text" name="username" style = "width: 350px"><br>
Password: <input type="password" name="pwd" id="pwd" style="width: 350px; margin-left: 3px;"><br>
Remember Me: <input type="checkbox" name="rememberme" value="1"><br>
<input type="submit" name="submit" value="Login!" class="loginbutton" onclick="submitForm();">
</form>

JS

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("password");
password.name="password";
password.type="hidden";
password.id = "password";
password.value = hash;
form.appendChild(password);
pwd.value = "";
form.submit()
}

发送参数:

username: user
pwd: ""
rememberme: "1"
submit: "Login!"

我如何password: *some value* 这些发送的参数?我做错了什么?

最佳答案

您正在创建一个 password 元素,而不是一个带有 type="password"input 元素。浏览器仅从它们知道的表单元素(输入、按钮、文本区域等)发送数据。此外,您正在为元素设置属性,但就兼容性而言,设置属性可能更安全。

关于javascript - 在提交表单之前追加元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39748597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com