$(function() {
var passInput = document.getElementById("pass").value;
$('#btn').click(function() {
if (passInput === 1234) {
alert("Correct");
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="passwordEntryDiv">
<input id="pass" type="password">
<button id="btn">Submit</button>
</div>
为什么这不起作用?这不是一个网站或任何我正在做的事情
答案 0 :(得分:2)
passInput
的值仅在代码运行时设置一次 - 它将永远不会在您提供的代码中更新。当用户单击该按钮时,它会将原始值与1234
进行比较,而不是文本框中的当前值。将其放入点击处理程序中,以便在每次点击发生时获取新值。
$(function () {
$('#btn').click(function() {
var passInput = document.getElementById("pass").value;
if (passInput === 1234) {
alert("Correct");
}
});
});
答案 1 :(得分:1)
很简单,您在页面加载时存储输入的值。当用户输入数据时,该变量不会更新。所以它永远不会变成空字符串。
现在访问按钮单击内的值,您已更新值以验证
$('#btn').click(function() {
/* get value when click occurs*/
var passInput = 1*$("#pass").val();
if (passInput === 1234) {
alert("Correct");
}
});
值也是字符串,因此如果针对数字进行测试,则需要将字符串转换为数字。有很多方法可以转换为数字。
答案 2 :(得分:-1)
它是一个输入字段,因此值为&#34; 1234&#34;不是1234。
变化:
passInput === 1234
要:
passInput === "1234"
此外,将值放在click事件中。
$("#btn").click(function () {
if ($("#pass").val() === "1234") {
alert("Correct");
});