2017-01-27 10 views
1

У меня есть форма регистрации, аналогичная этому http://codepen.io/ehermanson/pen/KwKWEv. Вкладка «Регистрация» отлично работает, но всякий раз, когда я нажимаю вкладку «Логин» и вводим адрес электронной почты и пароль, программа, похоже, слепает с адресом электронной почты. Это мой HTML-кодdocument.getElementById ('l'). Value; не работает

<div id="login"> 
     <h1>Welcome Back!</h1> 

     <div action="" method="post"> 


     <div class="field-wrap"> 
     <label> 
      Email Address<span class="req">*</span> 
     </label> 
     <input type="email"required autocomplete="off" id="email"/> 
     </div> 

     <div class="field-wrap"> 
     <label> 
      Enter your password<span class="req">*</span> 
     </label> 
     <input type="password"required autocomplete="off" id="password"/> 
     </div> 


     <p class="forgot"><a href="#">Forgot Password?</a></p> 


     <button class"Authbtn" id="submit" onclick="afterLogin();">Log In</button> 

     </div> 

    </div> 

и вот мой JS код

function handleloginIn() { 

    if (firebase.auth().currentUser) { 
    // [START signout] 
    firebase.auth().signOut(); 
    // [END signout] 
    } else { 
    var email = document.getElementById('email').value; 
    var password = document.getElementById('password').value; 
    alert(email); 

    if (email.length < 4) { 
     alert('Please enter an email address.'); 
     return; 
    } 
    if (password.length < 4) { 
     alert('Please enter a password.'); 
     return; 
    } 
    // Sign in with email and pass. 
    // [START authwithemail] 
    firebase.auth().signInWithEmailAndPassword(email, password).catch(function(error) { 
     // Handle Errors here. 
     var errorCode = error.code; 
     var errorMessage = error.message; 
     // [START_EXCLUDE] 
     if (errorCode === 'auth/wrong-password') { 
     alert('Wrong password.'); 
      } else { 
      alert(errorMessage); 
      } 

      // [END_EXCLUDE] 
     }); 
     } 
     //Handle Account Status 
     firebase.auth().onAuthStateChanged(user => { 
     if(user) { 
      window.location = "userhome.html"; //After successful login, user will be redirected to index.html 
     } 
     }); 
    } 

Я добавил предупреждение (электронная почта);

Я хотел знать, было ли значение считываться, но оно всегда возвращается как будто ничего не было введено в нем. Поскольку значения не обнаружены, я не смог войти в систему. Пожалуйста, помогите в том, что может вызвать эту проблему.

+0

в вашем codepen у вас есть <входной тип = «пароль» требуется автозаполнения = «выключено» />, без ид .... – vals

+0

Это не их codepen я не думаю. Ола, можете ли вы опубликовать код с вашим фактическим кодом? – josephsnell

+1

У вас есть поле в регистрационной форме с идентификатором 'id ="? Потому что идентификатор должен быть уникальным. –

ответ

0

Попробуйте использовать console.log вместо предупреждения для запуска. Вероятно, это покажет, не определено ли оно или нет. Также добавьте пробел между типом и требуемым атрибутом на входах. Войдите в консоль с результатом getElementById и попробуйте посмотреть, не находит ли он этот элемент, и тогда у вас будет лучшее представление об этой проблеме.

0

Поскольку нам не хватает разметки вашей регистрационной формы, я предполагаю, что вы использовали id="email" 2 раза.

Поэтому, когда вы отправляете форму для входа, javascript document.getElementById получите первый найденный элемент (в вашей регистрационной форме) и говорит, что он пуст.

Вы должны использовать уникальный идентификатор или класс.

Как id="register-email" и id="login-email"

+0

Спасибо, я понял. Мне нужно было указать отдельное имя имени для полей входа и регистрации. – Ola

+0

Жаль, что я не смог бы поддержать, но у меня недостаточно очков ... спасибо – Ola

Смежные вопросы