javascript中不会触发警报
我试图做一个基本的密码匹配按钮点击。下面是输入、按钮和脚本。我要做的就是点击按钮,检查密码是否=javascript中不会触发警报,javascript,Javascript,我试图做一个基本的密码匹配按钮点击。下面是输入、按钮和脚本。我要做的就是点击按钮,检查密码是否=test123。如果是,则显示警报,然后隐藏div 当我点击按钮时,什么也没发生。我知道脚本正在执行。如果我更改警报(document.getElementById('passbox1').value)至警报(“启动”)我看到了警报 <div id="passdiv"> <input name="passbox1" type="password" /> &
test123
。如果是,则显示警报,然后隐藏div
当我点击按钮时,什么也没发生。我知道脚本正在执行。如果我更改警报(document.getElementById('passbox1').value)代码>至警报(“启动”)代码>我看到了警报
<div id="passdiv">
<input name="passbox1" type="password" /> <input name="submit" onclick="showDiv()" type="button" value="Submit" /></div>
<div id="list">testing</div>
<script>
function showDiv() {
alert(document.getElementById('passbox1').value);
if( document.getElementById('passbox1').value == "test123") {
alert("match");
document.getElementById('passdiv').hidden = true;
document.getElementById('list').hidden = false;
} else {
alert("Password is incorrect.");
}
}
</script>
测试
函数showDiv(){
警报(document.getElementById('passbox1').value);
if(document.getElementById('passbox1')。value==“test123”){
警报(“匹配”);
document.getElementById('passdiv').hidden=true;
document.getElementById('list')。hidden=false;
}否则{
警报(“密码不正确”);
}
}
假设您已经在HTML中定义了passbox1
div,请尝试下面的代码段,此外,您应该在实际调用函数showDiv()之前声明它
函数showDiv(){
警报(document.getElementById('passbox1').value);
if(document.getElementById('passbox1')。value==“test123”){
警报(“匹配”);
document.getElementById('passdiv').style.visibility=“hidden”;
document.getElementById('list').style.visibility=“visible”;
}否则{
警报(“密码不正确”);
}
}
测试
您有几个问题,请参阅fiddle:
无法获取没有值的div的值:)
要修复此问题,请添加一个带值的输入字段,或者像这样使用innerHTML:alert(document.getElementById('list').innerHTML)代码>
测试
函数showDiv(){
警报(document.getElementById('list').innerHTML);
//innerHTML将在列表中获取文本
//另外,在您的示例中,getElementById()没有以ID为目标
if(document.getElementById('list')。value==“test123”){
警报(“匹配”);
document.getElementById('passdiv').hidden=true;
document.getElementById('list')。hidden=false;
}否则{
警报(“密码不正确”);
}
}
如果此代码有效,请尝试my运行此代码:
检查
测试
帕斯迪夫
函数showDiv(){
警报(document.getElementById('passbox1').value);
if(document.getElementById('passbox1')。value==“test123”){
警报(“匹配”);
document.getElementById('passdiv').style.display=“block”;
document.getElementById('list').style.display=“无”;
}否则{
警报(“密码不正确”);
}
}
按钮和输入框的代码在哪里?乍一看,DOM元素上没有隐藏的属性。您可能希望改用document.getElementById(…).style.display='none'
。如果您的代码与您在此处发布的代码类似,它将抛出错误,因为没有id为'passbox1'的元素,因此它无法读取的属性值null@codeNinja:你能把完整的HTML代码和你的JS一起发布吗?“如果我更改了警报(document.getElementById('passbox1').value);要发出警报(“启动”);我看到了警报。“-这意味着您从document.getElementById('passbox1')收到错误.value
,最有可能的错误是不存在具有该id的元素。快速浏览您的个人资料表明您已经用JavaScript编程至少2年了。虽然这应该在第一天发生,但现在是停止使用alert进行调试并学习如何使用JS控制台的时候了:@downVorters:您的评论我们的帮助。没有否决,但似乎是“我们不喜欢这个问题”所以“我们不喜欢你回答”。在技术层面上,hidden
仍然不作为DOM元素的属性存在,因此它不会正确隐藏/显示。@arcyqwerty:当然,我不知道不完整的问题不应该被回答,我只是假设他有正确的HTML,因此我的答案基于这个前提。如果是这样的话,我很乐意删除我的答案。我想我不认为回答低质量的问题有什么问题。我也不认为不回答这样的问题有什么问题。但是,我认为,根据现有信息对不好的问题的有效答案进行否决是不公平的。否决这个问题是一回事,因为这是低质量的,惩罚回答者是另一回事回答问题。这只是我的2c,但有些人显然不同意。如果meta.stackoverflow.com中还没有回答,那么这个讨论在那里更合适。@arcyqwerty:我同意,我也更改了我的代码。我之前没有意识到隐藏不作为DOM元素的属性存在,我使用了style.visibility属性在我对隐藏和显示div的回答中,感谢您指出这一点。
<body onload="showDiv()">
<div id="list">testing</div>
</body>
<script>
function showDiv() {
alert(document.getElementById('list').innerHTML);
//innerHTML will get text inside list
//Also .getElementById() was not targeting an ID in your example
if( document.getElementById('list').value == "test123") {
alert("match");
document.getElementById('passdiv').hidden = true;
document.getElementById('list').hidden = false;
} else {
alert("Password is incorrect.");
}
}
</script>