我正在尝试使密码和确认密码匹配,而不要将两者都留空。
我想在这部分中添加有关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")
}
}
我希望这段代码说明密码尚未填写,如果密码未填写,欢迎输入密码和确认密码匹配,如果密码不匹配,则表示密码不匹配
我不确定自己做错了什么,但是如果有人可以帮助,我会很乐意。
:))
答案 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;
}