【发布时间】:2020-08-24 21:43:09
【问题描述】:
当我尝试检索表单中输入的文本时,结果为空白。
document.getElementById("pass").addEventListener("keydown", function() {
document.getElementById("pass").style.backgroundColor = "#DFFEFE";
});
document.getElementById("pinCode").addEventListener("keydown", function() {
document.getElementById("pinCode").style.backgroundColor = "#DFFEFE";
});
var pass = document.getElementById("pass").value;
var pinCode = document.getElementById("pinCode").value;
function createCookie() {
window.alert(pass);
}
<div id="validation">
<form id="validationForm">
<fieldset>
<label for="pass">Password:</label><br />
<input type="text" id="pass" name="pass" /><br />
<label for="pinCode">4-digit PIN:</label><br />
<input type="text" id="pinCode" name="pinCode" /><br />
<input type="submit" value="Log In" onclick="createCookie()" />
<p id="rightorwrong"></p>
</fieldset>
</form>
</div>
<script type="text/javascript" src="password.js"></script>
当用户在表单中输入数据并按下提交时,函数createCookie()被调用。我知道这行得通,因为如果我在函数中输入window.alert("test");,它就会起作用。因此问题出在pass。
我尝试从var pass = document.getElementById("pass").value; 中删除value,但这也没有用。
我很难过,因为这也是相对简单的代码。 (我在 Chrome 84 上。)
TIA
【问题讨论】:
-
var pass = document.getElementById("pass").value;设置在页面初始加载时通过,因此它将为空,您需要在 keydown 事件侦听器中更新pass,或检索createCookie中的值 -
这能回答你的问题吗? Global variable not changing on event
-
@HereticMonkey 不,因为它使用的是 JQuery。我想要一个严格的 JS 解决方案。
标签: javascript html forms getelementbyid