首页 > 解决方案 > 为什么当我点击 onclick 按钮时什么都没有发生?

问题描述

*我想为较低和较高的数字显示两个输入字段,并在输入错误时显示必要的错误消息。

知道为什么当我点击我的按钮时什么都没有发生吗?任何方式我都可以缩短我的 if-else 语句,因为它确实感觉很罗嗦,谢谢你的评论*

<html> Enter lowest number<br>
        <input type="text" id="input"  size="20">
        <span id="wrongInput"><br><br>
        
        Enter highest number<br>
        <input type="text" id="input2" size="20">
        <span id="wrongInput2"></span><br><br>
        <button type="button" onclick="testNum()">Play button</button><br><br>
 </html>
        
<script>
function testNum()
{
//if is not a number or blank input
    if (/^\d$/.test(input) == '') 
    {
        var blank = document.getElementById("wrongInput").innerHTML;
        blank.innerHTML = "Please fill in a number"; 
        blank.style.color ="red"; 
        return false; 
    } else {
        blank.innerHTML = "";
    }
    
    if (/^\d$/.test(input)  == false)
    {   
        var wrong = document.getElementById("wrongInput").innerHTML;
        wrong.innerHTML = "Only key in number";
        wrong.style.color ="red";
        return false; 
    } else {
        wrong.innerHTML = ""; 
    }
    
    if (/^\d$/.test(input2) == '')
    {   
        var blank = document.getElementById("wrongInput2").innerHTML;
        blank.innerHTML = "Please fill in a number"; 
        blank.style.color ="red"; 
        return false;
    } else {
        blank.innerHTML = "";
    }
    
    if (/^\d$/.test(input2)  == false)
    {   
        var wrong = document.getElementById("wrongInput2").innerHTML;
        wrong.innerHTML = "Only key in number";
        wrong.style.color ="red";
        return false; 
    } else {
        wrong.innerHTML = ""; 
    }
    
    if (input2 < input)
    {
        var wrong = document.getElementById("wronginput2").innerHTML;
        wrong.innerHTML = "The number must be higher"; 
        wrong.style.color ="red";
        return false; 
    } else {
        return true;
    }
}
</script>

标签: javascript

解决方案


在您的示例中调用了该函数,下面列出了一些我认为您应该考虑的事情。

首先,您试图在所有 else 块中调用未定义的变量。

其次,您在所有 if 语句中调用了 innerHTML 两次。

最后,您需要查看 if 语句中的条件。


推荐阅读