如何使用JavaScript中包含“和”的条件制作if语句

时间:2019-04-22 17:28:31

标签: javascript

我正在尝试使密码和确认密码匹配,而不要将两者都留空。

我想在这部分中添加有关if语句中密码字段不能留空的内容,方法是说密码具有相同的值,并且这些值也不为空。

当它只是if语句时,该函数运行良好,它表示必须匹配密码才能出现欢迎警报,并且发现javascript中的and符号为&&,但我不知道如何在上下文中使用它。

var check = function() {

if (document.getElementById('psw').value ==
document.getElementById('psw-repeat').value)
&&
(document.getElementById('psw').value) != "" 
&&
(document.getElementById('psw-repeat').value) != "" } 

else {
alert("passwords do not match")
  }
}

我希望这段代码说明密码尚未填写,如果密码未填写,欢迎输入密码和确认密码匹配,如果密码不匹配,则表示密码不匹配

我不确定自己做错了什么,但是如果有人可以帮助,我会很乐意。

:))

4 个答案:

答案 0 :(得分:0)

您不会用()关闭整个if语句

答案 1 :(得分:0)

好吧,最好的处理条件的方法如下。 为什么最好

  • 经过优化,您无需一次又一次从dom中获取值 条件检查

  • 如有条件,易于阅读。

  • 如果代码不可读,则不是最佳代码

所以总是尝试打破条件

function() {      
        var password = document.getElementById('psw').value;
        var password_repeat = document.getElementById('psw-repeat').value;
        if (password == password_repeat && password != ""  && password_repeat != "")
        { 
                // code ..........
        } 
        else 
        {
            alert("passwords do not match")
        }
    }

为了更好地进行代码检查和样式设置,请使用一些IDE,例如VSCode Atom Bracket 但我个人比较喜欢VSCode

答案 2 :(得分:0)

唯一的实际问题是括号和花括号的位置不正确,但是这种方式除了这些简单的修复之外还增加了一些改进。

// Select HTML elements
const psw = document.getElementById("psw");
const pswRepeat = document.getElementById("psw-repeat");
const checkBtn = document.getElementById("checkBtn");

// Listen for button clicks
checkBtn.addEventListener("click", check);

// Validate passwords
function check(){
  if(pswRepeat.value === psw.value && psw.value != ""){
    // We know they are the same, and psw is not empty (so neither is pswRepeat)
    alert("good");
  }
  else{
    alert("passwords do not match");
  }
}
<input id="psw" />
<input id="psw-repeat" />
<button id="checkBtn">Check</button>

答案 3 :(得分:0)

您忘记了右括号。
您需要更好的缩进来及早发现这些类型的问题,并需要对逻辑进行某种分离以保持代码的可读性。

类似这样的事情:

var check = function() {

  if (isValid()) {
    //Welcome here
  } else {
    alert("passwords do not match")
  }
}

function isValid() {
  var psw = document.getElementById('psw').value;
  var repeatPsw = document.getElementById('psw-repeat').value;

  //Logic to check for password
  if (psw == repeatPsw &&
    psw != "" &&
    repeatPsw != ""
  )
    return true;

  return false;
}