Мой код не работает, что не так?

Я новичок в JavaScript, но я последовал действительно хорошему учебнику, и я делаю знак во всплывающей форме, но это не работает... Идея в том, что у вас есть одно имя пользователя и один пароль, если оба они верны, вы будете перенаправлены на страницу. Я потерял HTML-код для формы, но в поле ввода идентификатор должен быть uName, а в поле пароля - pWord. Вот мой код JavaScript:

function myFunction(){

    var uName = document.getElementById("uName").value;
    var pWord = document.getElementById("pWord");


}


// This line controls the uName and pWord.

if(uName = "Admin",pWord = "Admin"){

// This line creates a pop-up with the name.

alert("Welcome " + uName);

// Need a line to redirect to a new page

// Need a line with the else statement

// Need a line to say if something if not all fields are filled


}

Имя пользователя должно быть Admin и пароль Admin. Если вы не ввели правильную комбинацию, вы должны получить сообщение типа "Неправильная комбинация".

6 ответов

Решение

Есть пара вопросов:

  1. Вы не получаете значение поля пароля, но объект
  2. Вы не проверяете учетные данные внутри функции
  3. Вы назначаете "Admin" для uName а также pWord с одним =
  4. Вам нужно использовать && чтобы соответствовать обоим тестам вашего оператора if

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

= устанавливает значение, == соответствует значению, === соответствует значению и типу (строка, объект, int)

function myFunction(){

    var uName = document.getElementById("uName").value;
    var pWord = document.getElementById("pWord").value;

    // This line controls the uName and pWord.

    if(uName == "Admin" && pWord == "Admin"){

        // This line creates a pop-up with the name.

        alert("Welcome " + uName);

        // Need a line to redirect to a new page

        // Need a line with the else statement

        // Need a line to say if something if not all fields are filled
    }

}

Чтобы бороться с вашими комментариями

// Need a line to redirect to a new page
window.location.href="/pagetoredirectto.html";

а также

// Need a line with the else statement
if(uName == "Admin" && pWord == "Admin"){

    alert("Welcome " + uName);

} else {

    alert( "User and Pass do not match" );

}

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

// Need a line to say if something if not all fields are filled
if( !uName || !pWord )
{
    alert( "Enter both a username and password" );
    return;
}

Мы используем return здесь, чтобы остановить выполнение остальной функции

Полный код

function myFunction(){

    var uName = document.getElementById("uName").value;
    var pWord = document.getElementById("pWord").value;

    // Need a line to say if something if not all fields are filled
    if( !uName || !pWord )
    {
        alert( "Enter both a username and password" );
        return;
    }

    // This line controls the uName and pWord.

    if(uName == "Admin" && pWord == "Admin"){

        alert("Welcome " + uName);

        window.location.href="/pagetoredirectto.html";

    } else {
        alert( "User and Pass do not match" );
    }

}

Это задание с = оператор:

if (uName = "Admin",pWord = "Admin") {

Пока нужно сравнение == или же===:

if (uName == "Admin" && pWord == "Admin") {

Также использование запятой , оператор не правильный (ну это правильно, но не в этом месте). Вам нужно логическое И &&,

Назначение внутри if check делает истинное выражение (строка "Admin" является правдивой), заставляя код всегда вводить if-block.

Измените свой код, как показано ниже, и проверьте:

function myFunction(){
    var uName = document.getElementById("uName").value;
    var pWord = document.getElementById("pWord").value;

    if(uName != "" && pWord != ""){ /* Ensure both fields have value */
        if(uName == "Admin" && pWord == "Admin"){
            alert("Welcome " + uName);
            /* Redirection code goes here */
        }else{
            /* If user is not Admin */
        }
    }else{
        /* Validation message goes here */
    }        
 }

Вот это я надеюсь

function myFunction(){

  var uName = document.getElementById("uname").value;
  var pWord = document.getElementById("pWord").value;

  if (uName == "Admin" && pWord == "Admin") {
    // This line creates a pop-up with the name.
    alert("Welcome " + uName);
    // Need a line to redirect to a new page
    document.location = "http://www.google.de"
    
    // Need a line to say if something if not all fields are filled
  }else if (uName == "" || pWord == "") {
    alert("Fill all fields");
    
  // Need a line with the else statement
  }else{
    alert("Incorrect Combination"); 
  }
  
}
<input id="uname"></input>
<input id="pWord"></input>

<input type="button" onclick="myFunction()" value="Login"></input>

Еще способ небезопасной версии сценария входа.

Если вы перейдете к отладке, вы можете увидеть имя пользователя и передать незашифрованный шифрованный текст.

Вы берете ссылку на конкретный объект в целом pWord хотя вы намерены принять только значение поля пароля.

Также Вы назначаете "Админ" для uName а также pWord с одним =, Для сравнения используйте === или же == хотя я бы порекомендовал использовать ===,

Сделай это:

function myFunction(){
    var uName = document.getElementById("uName").value;
    var pWord = document.getElementById("pWord").value;
}

Для перенаправления использовать

window.location = "http://www.location.com/ie.htm";

Хорошо попробуйте этот пример:

function myFunction(){
    var uName = document.getElementById("uName").value;
    var pWord = document.getElementById("pWord").value;

    // This line controls the uName and pWord.
    if(uName == "Admin" && pWord == "Admin"){
        // This line creates a pop-up with the name.
        alert("Welcome " + uName);
        // Need a line to redirect to a new page
        location.href = "http://www.SOMEURL.com";
        // Need a line with the else statement
    } else {
        // Need a line to say if something if not all fields are filled
        alert("Wrong input");
    }
}
Другие вопросы по тегам