我正在为考试创建一个用于实时聊天的应用程序。到目前为止,一切都进行得很好。出于某种原因,即使功能显然在我的代码中,电子也无法找到功能。
/*
* login()
*/
async function login() {
var userName = document.getElementsByName("userName");
var password = document.getElementsByName("password");
if(validateForm('login')) {
var sql = "SELECT * FROM db.users WHERE ?? = ?";
var inserts = ["userName", userName];
sql = mysql.format(sql, inserts);
connResult = await conn(sql);
var dbUsername;
var dbPassword;
var autologin;
if(connResult === 'resolved') {
dbUserName = result[0]["userName"];
dbPassword = result[0]["password"];
} else {
console.log(connResult);
}
if(document.getElementsByName("autoLogin").checked) {
autoLogin = true;
} else {
autoLogin = false;
}
if(verifyUser(userName, password, dbUserName, dbPassword)) {
storeUser(connResult, autoLogin);
if(await fetchUserData(userName)) {
mainProcess.createMain();
window = remote.getCurrentWindow
window.close();
}
}
}
};
/*
* verifyUser()
*/
function verifyUser(userName, password, dbUserName, dbPassword) {
if(compare(dbUserName, userName)){
console.log("UserName exists");
if(compare(dbPassword, password)) {
console.log("password exists");
return true;
} else {
console.log("Wrong password");
document.getElementById("formWarning").innerHTML
return false;
}
} else {
console.log("userName doesn't exist");
return false;
}
};
这是HTML:
<button id="loginButton" onclick="login()" class="buttonMedium">Login</button>
通过onclick运行功能login()
时出现以下错误:
“未捕获的TypeError:登录不是函数”
当我在开发控制台中输入login()
时:
“未捕获(承诺)TypeError:无法读取未定义的属性'占位符'”
我也遇到了最后一个错误,因为文档无法“通信”。它正在尝试访问我的html中的表单,由于某种原因它无法读取占位符。
正如我提到的,以前一切正常。我不知道哪里出了问题。希望你们能帮助我。
答案 0 :(得分:0)
需要脚本意味着它具有自己的上下文。假设您的代码位于html文件底部所需的脚本中:
<script>
require('./index.js')
</script>
按如下所示将功能关联到按钮:
document.getElementById('loginButton').addEventListener('click', login);
记住那之后,您还不需要HTML上的“ onclick”属性:
<button id="loginButton" class="buttonMedium">Login</button>