Javascript,如果条件在没有&&逻辑运算符当&&它不起作用

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

本文关键字:amp 逻辑运算符 不起作用 如果 条件 Javascript      更新时间:2023-09-26

如果#nameT id中字符的长度小于< 3或大于<大于20,则我希望错误消息显示。当我使用&&逻辑运算符时,如果我逐个执行代码,则当&&不存在时,它无法正常工作。

<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运算符时,两个操作数都必须为true,然后逻辑运算符才会返回true。在你的情况下,这根本不可能。

您需要使用||(或)运算符。只有当长度大于20,同时小于3时,才会输入当前的if分支,正如您所看到的,这是永远不会发生的。

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