2015-03-10 3 views
1

Я понятия не имею, почему это не работает. Я видел подобные проблемы на так, но они не решить проблемуUncaught TypeError: Не удается прочитать свойство 'addEventListener'

Это HTML код

<html> 
    <head> 
     <meta charset="utf-8" /> 
     <title>Java Script 2</title> 
    </head> 
    <body> 
    <div id="loginForm"> 
     <form name="userLogin"> 
     <input type="text" name="userName" /> 
     <input type="password" name="userPass" /> 
     <input type="button" name="login" value="Login" /> 
     </div> 
     <script src = "question_2.js"></script> 
     </form> 
    </div> 
    </body> 
</html> 

и это JavaScript

var submit = document.getElementById("login"); 

if(submit!="null"){ 
submit.addEventListener("click",getLogin); 
} 

function getLogin(){ 
    var nameData = "admin"; 
    var passData = "admin"; 
    var userName = document.userLogin.userName.value; 
    var pass = document.userLogin.userPass.value; 


    if(userName.compareTo(nameData) && pass.compareTo(passData)){ 
     replace.textContent("Hello there " + nameData); 
    } 
    else{ 
     document.write("Try again"); 
    } 
} 

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

Uncaught TypeError: Cannot read property 'addEventListener' of nullquestion_2.js:4 (anonymous function)

Он нацелен на слушатель действий я установил для кнопки, но я понятия не имею, как это исправить.

+2

В вашем HTML не содержится элемента с идентификатором «login», поэтому '.getElementById()' возвращает 'null'. – Pointy

+1

['getElementById()'] (https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementById) ищет элемент с соответствующим атрибутом '' id' '(https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id), а не 'имя'. –

ответ

0

У вас нет элемента с идентификатором «Логин»

var submit = document.getElementById("login"); 

if(submit){ 
submit.addEventListener("click",getLogin); 
} 
3

Ну, у вас нет элемента с идентификатором: «Логин». Вот почему submit - null.

Вы должны дать вход:

<input type="button" name="login" value="Login" /> 

соответствующий идентификатор. И еще одна вещь:

if(submit!="null") 

Я предполагаю, что вы хотите проверить «отправить» против фактического значения: null, а не строку «null». Вы должны написать, если-заявление он следующим образом:

if(submit!==null) 

Таким образом, вы проверяете представить на нуль-объект, и вы делаете это типобезопасным, это означает, что, если заполните не равно нулю, но какое-то странное Причина неопределенная, вы все равно сделаете правильную проверку. Прочитайте Steve Johnsons Blog Post по undefined vs. null, если это как-то для вас ново.

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