Почему моя переменная становится неопределенной, но устанавливается в предыдущей функции? - PullRequest
0 голосов
/ 07 декабря 2018

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

var tempusername
var temppassword
var tempconpassword

var username
var password

function onReg(tempusername, temppassword, tempconpassword, username, password){

tempusername = document.querySelectorAll("[name=username]")[0].value
temppassword = document.querySelectorAll("[name=password]")[0].value
tempconpassword = document.querySelectorAll("[name=conpassword]")[0].value

if(temppassword == tempconpassword && tempusername.length>2 && temppassword.length>2 && tempconpassword.length>2 ){

    username = tempusername
    password = tempconpassword
    alert(username + " : " + password)

}
else if (password!=tempconpassword){
    alert("Password doesnt match or is to short!")

}
}

function onLogin(username,password) {
    alert("Does this work?" + username)
}

Я думаю, это может быть потому, что это не глобальная сфера?и если да, то как я мог натолкнуться на это с этим кодом?

Ответы [ 3 ]

0 голосов
/ 07 декабря 2018

Я думаю, вы должны использовать document.getElementById("[name=username]").value

0 голосов
/ 07 декабря 2018

Не используйте переменные , которые уже были объявлены как параметры функции.username и password уже объявлены как переменные, поэтому вы должны заменить их другими именами.Попробуйте вместо этого использовать usernameX и passwordX.

function onLogin(usernameX,passwordX) {

    // will alert the value of the first parameter (usernameX)
    alert("Does this work?" + usernameX) 

    //if you want to get the value of the variable 
    alert("Does this work?" + username)

}
0 голосов
/ 07 декабря 2018

username внутри onLogin - это формальный параметр функции.Вы должны явно передать ему значение при вызове onLogin.

var x = 'foo';
function checkX() {
    alert(x);
}  
function badCheckX(x) {
    alert(x);
}
checkX(); // 'foo'
badCheckX(); // undefined
badCheckX('bar'); // 'bar'
badCheckX(x); // 'foo'  
...