2014-02-02 4 views
0

Итак, я новичок во всем Javascript в HTML-статье. Итак, я работал над простой программой входа в систему. По какой-то причине моя функция не работает. Каждый раз, когда я ввожу правильное имя пользователя и пароль, он сообщает мне: «Вы неправильно ввели свое имя пользователя или пароль!»Login help - если инструкция не работает?

<html> 
    <head> 
    <title>Login info stuff</title> 
    </head> 
    <body> 
    <script type="text/javascript"> 
    var username = document.write("<input type='text' name='Username'>"); 
    document.write("<br />"); 
    var password = document.write("<input type='password' name='Password'>"); 
    document.write("<br />"); 
    function correct(){ 
    if(username==="Username" & password==="Password") 
    {location="blank.HTML"} 
    else{alert("You entered your Username or Password incorrectly!")} 
    } 
    Submit = document.write("<input type='submit' value='Login' onClick='correct()'>"); 
    </script> 
    </body> 
</html> 
+1

Вы не должны делать проверку пароля в javascript, так как в стороне ... – Ghost

+1

Как другой в стороне, использование document.write, как правило, очень плохая идея. – adeneo

ответ

0

в username и password переменные хранить значение, возвращаемое document.write. Они не извлекают значения. Чтобы сделать это, вам нужно сделать:

document.write("<input type=\"text\" name=\"username\" id=\"username\">"); 
var username = document.getElementById('username').value; 

Так что ваш сценарий должен быть:

<script type="text/javascript"> 
    document.write("<input type='text' name='Username' id='username'>"); 
    document.write("<br />"); 
    document.write("<input type='password' name='Password' id='password'>"); 
    document.write("<br />"); 


    function correct(){ 
     if(document.getElementById('username').value==="Username" && document.getElementById('password').value==="Password") 
     { 
      location="blank.HTML" 
     } else { 
      alert("You entered your Username or Password incorrectly!") 
     } 
    } 

    Submit = document.write("<input type='submit' value='Login' onClick='correct()'>"); 
</script> 
1

Это потому, что ваш сравнивая имя пользователя и пароль переменные, которые не являются значения из текстовых полей. Это должно работать:

<html> 
    <head> 
     <title>Login info stuff</title> 
    </head> 
    <body> 
     <script type="text/javascript"> 
      document.write("<input type='text' name='Username' id='username'>"); 
      document.write("<br />"); 
      document.write("<input type='password' name='Password' id='password'>"); 
      document.write("<br />"); 

      function correct(){ 
       if(document.getElementById('username').value ==="Username" && document.getElementById('password').value === "Password") 
       { 
        location="blank.HTML"; 
       } 
       else{ 
        alert("You entered your Username or Password incorrectly!") 
       } 
      } 
      Submit = document.write("<input type='submit' value='Login' onClick='correct()'>"); 
    </script> 
    </body> 
</html> 

То, что я сделал здесь:

  • Добавлен id в обоих поля
  • При сравнении значений первым получают DOM-элемент, вызвав document.getElementById, а затем получение текущее значение от value
+0

Спасибо. Это сделало это для меня. Я новичок в Javascript, поэтому ... – XanaWarriors

+0

Добро пожаловать! – Kenneth

0

И на JavaScript & &

А также вам нужно сохранить значения входов в переменную типа:

var user = document.getElementById('username').value; 
var pwd = document.getElementById('password').value; 

Затем использовать эти две переменные в ваш, если заявление

EDIT: Для использования getElementById() вам нужно первым добавить идентификатор к соответствующему входу в вашей document.write линии

0
<html> 
    <head> 
    <title>Login info stuff</title> 
    </head> 
    <body> 
    <form id="myform" name="myform" action="blank.html" > 
     <input type="text" name="username" id="username" /> 
     <input type="password" name="password" id="password" /> 
     <input type="submit" name="submit" id="submit" value="Login" onclick="return correct();" /> 
    </form> 

    <script type="text/javascript"> 
    var username = document.getElementById("username"), 
     password = document.getElementById("password"), 
     myform = document.getElementById('myform'); 

    function correct() { 
     if(username.value!=="username" || password.value!=="password") { 
      alert("You entered your Username or Password incorrectly!"); 
      return false; 
     } else { 
      myform.submit(); 
     } 
    } 
    </script> 
    </body> 
</html> 

модернизирован немного http://plnkr.co/edit/iHDlTW5726g8NqHIjz1A?p=preview

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