Javascript,如果条件在没有 && 逻辑运算符的情况下有效,当 && 存在时它不起作用

Javascript,if condition works without && logical operator when && is present it doesnt work

如果 length 中的字符 error 消息 display =12=] id 小于 < 3 或大于 < 大于 20.When 我使用 && 逻辑运算符 && 不存在时,它不会按预期工作,如果我一个接一个地执行它完美运行的代码。

<style>
    .name{
        border: .5px solid #C0C0C0;
        margin-left: 1em;
        margin-right: 1em;
        padding: .7em;
        margin-bottom: 1em;
    }

    #error{
        display: inline-block;
        color: #727171;
        border:1px solid #C0C0C0;
        padding: .5em;
        margin-top: .5em;
        display:none;
    }

    label{
        color:grey;
    }
    </style>
</head>
<body>

    <label>Name :<input class="name" id ="nameT" onblur="check()" type="text"></input></label>

    <div id="error">Error please type less than 15 characters</div><br/>

    <label>Password :<input class="name" type="password"></input></label>

<script language="javascript" type="text/javascript">

function check() {
    var length = document.getElementById("nameT").value.length;
    var error = document.getElementById("error");

    if(length < 20 && length < 3){
        error.style.display="inline-block";
    }
}
</script>
</body>

length 的值不能同时大于 20 且小于 3。

我觉得你是想设置长度大于20或者小于3的错误显示,如果是这样你需要用OR(||)逻辑运算符

if(length > 20 || length < 3){
    error.style.display="inline-block";
}

当您使用 AND 运算符时,两个操作数都必须为真,只有这样逻辑运算符才会 return 为真。在你的情况下这是不可能的。

您需要使用 ||(或)运算符。您当前的 if 分支只会在长度大于 20 且同时 小于 3 时进入,如您所见,这永远不会发生。

if (length > 20 || length < 3) {
    ...