2015-11-19 7 views
1

Все мои операторы var используют идентификаторы: var identifier = document.getElementById ("somename"); Так почему я получаю нулевую ошибку. Я запустил этот код в бегунке javascript и получил сообщение об ошибке. И в моих браузерах Firefox и Chrome я не получаю никаких ошибок или предупреждений. Когда я запускаю код в браузере и нажимаю кнопку, чтобы активировать обработчик событий, форма очищается. В любом случае, это не будет сервер. Это просто практика. Я занимаюсь курсом в javascript и динамическом HTML. Если кто-то захочет посмотреть на мой код и рассказать мне, что я делаю неправильно, я был бы признателен. Должно быть что-то, что я не получаю. Вот сценарий:ТипError: document.getElementById (...); is null javascript

window.onload = function(){ 
var fname = document.getElementById("fname").value; 
var lname = document.getElementById("lname").value; 
var loginName = document.getElementById("uname").value; 

var myEmail = document.getElementById("email").value; 

var pass1 = document.getElementById("password1").value; 
var pass2 = document.getElementById("password2").value; 
if(document.getElementById("uname").value == ""){ 
    return false; 
    alert("Your user name can't be blank."); 
    }; 

if(pass1.value !== pass2.value){ 
    get.documentElementById("signin").value.disabled = true; 
    return false; 
    alert("Please retype your password."); 
}else if(pass1.value === pass2.value){ 
alert("Welcome!"); 
}; 
}; 
HTML 
<body> 
<form action = "" name = "form" method = "Post"> 
<label for="fname">First Name:</label><input type = "text" id = "fname"required></input> 

<label for="lname">Last Name:</label><input type = "text" id = "lname" required></input> 

<label for="uname">User Name:</label><input type = "text" id = "uname" required></input><br/> 

<label for="password1">Password:</label><input type = "password" id = "password1"required ></input><br/> 

<label for="password2">Verify Password:</label><input type = "password" id = "password2"required ></input><br/> 

<label for="email">Email Address:</label><input type = "email" id = "email" required></input><br/> 

<button type = "submit"id = "signin" onclick = "function()">Submit</button> 
</form> 
<script src="signUp.js"></script> 
</body> 
+0

Что делает ваш HTML выглядит? – TAGraves

+0

*»Я побежал этот код в яваскрипте бегуна и получил сообщение об ошибке нуля. и в моем браузеров Firefox и Chrome. Я не получаю никаких ошибок или предупреждений ». * Это сбивает с толку. Вы говорите, что код работает в браузерах? Что это за «бегун JavaScript»? –

+0

И какая строка является «нулевой ошибкой»? – Amadan

ответ

1

Я очистил ваш код для вас. Было несколько мест, где у вас были ошибки (например, набрав pass1.value вместо pass1.Это должно работать, но, конечно, потребуется время, чтобы изучить его, чтобы посмотреть, что я изменил и понять почему. Here's a fiddle showing it working. Обратите внимание, что вы никогда не должны ожидать этого типа кода для запуска в «бегунах», на который вы ссылались, в этом коде содержится явная ссылка на определенные элементы в DOM, которых у бегунов не будет. (Использование такого сайта, как JSFiddle, лучше для такого рода вещей, так как вы можете поместить HTML в него, а).

var submitForm = function() { 
    var fname = document.getElementById("fname").value; 
    var lname = document.getElementById("lname").value; 
    var loginName = document.getElementById("uname").value; 
    var myEmail = document.getElementById("email").value; 
    var pass1 = document.getElementById("password1").value; 
    var pass2 = document.getElementById("password2").value; 
    console.log(pass1, pass2); 
    if (document.getElementById("uname").value == "") { 
     alert("Your user name can't be blank."); 
     return false; 
    } 

    if (pass1 !== pass2) { 
     document.getElementById("signin").value.disabled = true; 
     alert("Please retype your password."); 
     return false; 
    } else if (pass1 === pass2) { 
     alert("Welcome!"); 
    } 
}; 
<body> 
<form action="" name="form" method="POST"> 
<label for="fname">First Name:</label><input type ="text" id = "fname" required></input> 

<label for="lname">Last Name:</label><input type = "text" id = "lname" required></input> 

<label for="uname">User Name:</label><input type ="text" id ="uname" required></input><br/> 

<label for="password1">Password:</label><input type="password" id="password1" required></input><br/> 

<label for="password2">Verify Password:</label><input type="password" id="password2" required ></input><br/> 

<label for="email">Email Address:</label><input type="email" id="email" required></input><br/> 

<button type="submit" id="signin" onclick="submitForm()">Submit</button> 
</form> 
</body> 
+0

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

+0

Я просто пошел в JSFiddle, и код действительно работает. Спасибо, что поставил меня на потрясающий сайт. Я буду использовать его lotl – swydell

+0

Не стесняйтесь, дайте мне знать, если у вас есть вопросы о том, почему я изменил некоторые части вашего кода. Рад был помочь! – TAGraves

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