在 Javascript IF 语句中使用 AND/OR

哈立德·穆卡达姆

我正在尝试使用以下代码在 Javascript 中创建 IF 语句:

     <input class="entry" id="modalod" type="text" placeholder="Enter online ID" name="id" required>
     <input class="entry" id="pass1" type="password" placeholder="Enter Passcode" name="psw" required>
     <input class="entry" id="pass2" type="password" placeholder="Repeat Passcode" name="psw-repeat" required>
     <input class="entry" id ="emailtext" type="text" placeholder="Enter Email" name="email" required>
     <a href="#" class="loginbtnanchor btn btn-primary btn-md" 
     onclick="listids()">Login <i class="fa fa-sign-in"></i></a>

     var modalok = document.getElementById("modalok");
     var idarray = [];
     var passcodearray = [];
     var emailtextarray = [];
     var od = document.getElementById("modalod").value;
     var pass1 = document.getElementById("pass1").value;
     var pass2 = document.getElementById("pass2").value;
     var emailtext = document.getElementById("emailtext").value;
     var at = emailtext.indexOf("@");
     var period = emailtext.indexOf(".");

     modalok.addEventListener("click", function(event) {

        if ( ( (at == -1) || (period == -1) )  && ( (od.length < 15) || 
           (od.length > 18) ) )
        {
            alert("NOTE: ONLINE ID MUST BE BETWEEN 15 AND 18 NUMBERS 
            LONG.\nPASSCODES DON'T MATCH.\nEMAIL INVALID.");
             event.preventDefault();

        }
        else {
           idarray.push(od);
           passcodearray.push(pass1);
           emailtextarray.push(emailtext);


            }
       }); 

应该发生的是,只有当“用户”输入无效的电子邮件和错误的 ID 时,才会出现警报框。但是,如果仅发生其中一种情况,则会出现警报框。我认为问题在于我在此 IF 语句中使用 AND/OR 的语法。我尝试切换 AND/OR 的顺序和条件,但仍然无法修复它。

我能得到这方面的帮助吗?

谢谢,

用户94559

在点击处理程序中移动这些行:

var od = document.getElementById("modalod").value;
var pass1 = document.getElementById("pass1").value;
var pass2 = document.getElementById("pass2").value;
var emailtext = document.getElementById("emailtext").value;
var at = emailtext.indexOf("@");
var period = emailtext.indexOf(".");

就目前而言,您会立即获得这些值(可能在页面加载时)。因此,例如,od.length总是0at总是-1,等等。

自己进行调试的一个好方法是console.logif语句上方添加一个右侧以查看您正在测试的值。(例如console.log(at, period, od);。)这会清楚地表明这些值是不正确的,这会指出您找出这些值来自何处的方向。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在JavaScript的Case语句中使用“ OR”

在php if语句中使用javascript变量

如何在使用JavaScript的if语句中使用按钮的ID

如何在JavaScript IF语句中使用OR条件?

在条件语句中使用 AND 和 OR 的 JavaScript 运算符

Javascript OR运算符无法在if语句中使用

如何在使用JavaScript的switch case语句中使用范围?

在带有event.code的switch语句中使用JavaScript运算符

javascript'if'语句中使用的已发布变量会立即消失

如何转义要在语句中使用的JavaScript函数参数变量?

您如何在jQuery语句中使用Javascript构造函数方法?

Array.includes 在 if else 语句中使用节点 js / javascript

将 <a> 元素添加到现有 Javascript 变量以在 .html 语句中使用

在JavaScript中的if语句中使用不带括号的函数名会做什么?

如何在条件语句中使用javascript new Date()对象?

如何在条件语句中使用动态创建的 JavaScript 对象?

使用Javascript使图像从IF语句中出现

JavaScript在变量中使用if语句

JavaScript声明一个变量并在一个语句中使用逗号运算符?

在 JavaScript If..Else 语句中使用逻辑运算符“&&”时获得“未定义”结果

如何在 django 模板的 if 语句中使用 django 变量到 javascript 字符串变量中

JavaScript语句中的冒号

在If语句中使用IsError

在ifelse语句中使用%in%?

在 if 语句中使用 var

在 case 语句中使用 &&

在where语句中使用if

无法在if语句中使用$(this)

在 IF 语句中使用 AND 的 ARRAYFORMULA