所以我在这里有这个代码,我想在另一个类中使用验证结果(false),我该怎么做?我无法访问它
class Login extends Base {
constructor(propertyValues) {
super(propertyValues);
}
validate {
var usernamed = document.getElementById("username").value;
var passworded = document.getElementById("password").value;
if (usernamed == "abc" && passworded == "123") {
alert("Login successfully");
window.location = "http://localhost:3000/tasksMenu"; // Redirecting to other page.
return false;
}
}
}
答案 0 :(得分:2)
您可以进行静态验证,因为它不会对课程做任何事情。 this
并且似乎非常漂亮,静止。其次,我不会将重定向逻辑放在验证函数中,而是处理稍后调用验证的函数中的重定向。所以只需让validate()
返回true或false,然后从你调用的地方处理其余部分:
class Login extends Base {
constructor(propertyValues) {
super(propertyValues);
}
static validate() {
let usernamed = document.getElementById("username").value;
let passworded = document.getElementById("password").value;
return usernamed == "abc" && passworded == "123";
}
}
class Foo {
bar() {
if (Login.validate()) {
alert("success");
// redirect to your success page
} else {
alert("wrong credentials");
// redirect to your error page
}
}
}
new Foo().bar();
旁注:
当您使用html和javascript对此进行标记时,我假设您正在编写前端登录系统?如果是这样,请不要这样做!使用您网站的每个人都可以阅读前端的所有内容;这包括您检查的密码和用户名。 在后端登录 !!!
答案 1 :(得分:0)
首先,您的类中存在语法错误。您应该将验证函数定义为:
validate() {
//...
}
如果在此类之后加载此函数,则可以在另一个类中访问此函数。例如,您可以像下面这样访问它:
class other {
access() {
var login = new Login("pass your property values");
console.log(login.validate());
}
}
new other().access();