Консоль говорит, что функции onsubmit для формы регистра не существует, хотя она явно - PullRequest
0 голосов
/ 06 мая 2019

Итак, у меня есть форма регистрации, как, например:

<form name="register" action="" method="POST" onsubmit="register()" autocomplete="off">
...
</form>

И я знаю, что каждый ребенок этой формы функционирует. Затем ниже в теге <script> у меня есть моя основная функция, которая вызывается при отправке вышеуказанной формы. И я знаю, что все, что находится за пределами функции register, работает. Однако, когда я ввожу случайные значения в каждое поле моей формы и нажимаю «Отправить», консоль показывает, что функция register(), вызванная в атрибуте onsubmit моей формы, не существует. Я не могу найти проблему здесь:

//Global Vars
var firebaseConfig = { ...
};
firebase.initializeApp(firebaseConfig);
var db = firebase.firestore();
var registerButton = document.querySelector("#registerButton");
//Main Register Function
function register() {
  event.preventDefault();
  //Locally Global Variables
  var fullName = document.forms["register"]["fullName"].value;
  var username = document.forms["register"]["username"].value.toLowerCase();
  //The MD5 is a way to hash the password, that way the real password is safe and only the hash is used
  var password = md5(document.forms["register"]["password"].value);
  var serviceProvider = document.forms["register"]["serviceProvider"].value;
  //Simple If Statement that adds appropriate email suffix based on Service Provider
  if (serviceProvider === "Verizon") {
    serviceProvider = "@vtext.com";
  } else if (serviceProvider === "ATT") {
    serviceProvider = "@txt.att.net";
  } else if (serviceProvider === "TMobile") {
    serviceProvider = "@tmomail.net";
  } else if (serviceProvider === "Sprint") {
    serviceProvider = "@messaging.sprintpcs.com";
  }
  var phoneNumber = document.forms["register"]["phoneNumber"].value + serviceProvider;
  var emailAddress = document.forms["register"]["emailAddress"].value;
  //Checks The Database If The Username Is Already Taken Or Not
  db.collection("Users").where("username", "==", username).get()
    .then(function(querySnapshot) {
      //Checks Each Individual Result -- If there are no results, than this code will not run
      try {
        querySnapshot.forEach(function(doc) {
          //If any result exists, stop here
          if (doc.data()) {
            alert("I'm sorry but this username is already taken!! Please Try Another One");
            throw "Error";
          }
        });
      } catch (error) {
        if (error === "Error") {
          return;
        }
      }
      //If not
      //Add All Of The User Info To The Database
      db.collection("Users").doc(username).set({
          fullName: fullName,
          username: username,
          password: password,
          phoneNumber: phoneNumber,
          emailAddress: emailAddress,
          chatsInvolvedIn: []
        })
        .then(function() {
          //If it succeeds, give user the heads up and then take them to their new homepage
          alert("Your account under the username " + username + " has been sucessfully created. You will now be redirected to your homepage.");
          //Place Code Underneath to Handle Keeping user Logged In For Present and Future Visits, along with redirecting to a homepage
          //Code Goes Here
          db.collection("Users").doc(username).get().then(function(doc) {
            if (doc.exists) {
              localStorage.setItem("loggedIn", JSON.stringify(doc.data()));
            }
            alert(localStorage.getItem("loggedIn"));
            //window.location.replace("index.html");
          });

        })
        .catch(function(error) {
          //If it fails, tell user to try again later (we don't care about the error message during production, because it is unlikely after our many tests)
          alert("I'm sorry but your account was not successfully created due to an unexpected error. Please try again later.");
        });

    })
    .catch(function(error) {
      //If checking the database originally for duplicate usernames fails, then give the user the same warning as above
      alert("I'm sorry but your account was not successfully created due to an unexpected error. Please try again later.");
    });
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...