Электрон не может найти мою функцию при использовании onclick - PullRequest
0 голосов
/ 04 апреля 2019

Проблема

Я создаю приложение для живого чата в качестве проекта для моего экзамена.До сих пор все работало отлично.По какой-то причине электрон не может найти функции, хотя функции явно присутствуют в моем коде.

Код

/*
  * 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>

Я получаю следующую ошибку при запуске функции login() через onclick:

"Uncaught TypeError: вход в систему не является функцией"

И когда я печатаюlogin() в моей консоли разработчика:

"Uncaught (в обещании) TypeError: Невозможно прочитать свойство 'placeholder' undefined"

Я также получаю последнюю ошибку, потому что документы не могут "общаться».Он пытается получить доступ к форме в моем html и по какой-то причине не может прочитать заполнитель.

Как я уже говорил, все работало раньше.Я понятия не имею, где это пошло не так.Надеюсь, что вы, ребята, можете мне помочь.

1 Ответ

0 голосов
/ 04 апреля 2019

Требование скрипта означает, что у него есть собственный контекст.Предполагается, что ваш код находится в скрипте, необходимом в нижней части html-файла:

<script>
      require('./index.js')
</script>

Назначение функции кнопке следующим образом:

document.getElementById('loginButton').addEventListener('click', login);

После этого помните, что вы тоже не 'Вам не нужно свойство "onclick" в вашем HTML:

<button id="loginButton" class="buttonMedium">Login</button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...