JQuery код работает, но не в первый раз

0

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

Он работает, но у меня есть что-то странное. При первом посещении сайта и заполнении деталей он ничего не делает. Второй раз (после отправки) он работает так, как должен.

Кто-нибудь знает, почему?

Вот код:

function  controllogin() {
   event.preventDefault();

   var username = $("#gebruikersnaam").val()    
   var password = $("#wachtwoord").val()    

   if (username=="leerkrachten" && password=="leerkrachten") {
      alert("welkom leerkrachten");
      goToUrl();
   }
   else if (username=="leerling" && password=="leerling") {
      alert("welkom leerling");
   }
   else {
      alert("verkeerde gegevens ingevuld");
   }
};

function goToUrl() {
    alert("zoeken naar pagina");
    window.location = 'leerkrachten/vakken.html';       
};
  • 1
    Вы не можете сделать весь процесс входа в систему клиентской стороной, по умолчанию.
  • 0
    Могу ли я предложить вам начать с jspretty.com ? Код (на любом языке) легче читать и отлаживать, если вы используете правильные отступы и т. Д., И, поскольку вы просите нас помочь отладить ваш код, самое меньшее, что вы могли бы сделать, это сделать его читабельным ...
Показать ещё 8 комментариев
Теги:

1 ответ

0

Вместо onclick="controllogin();" попробуйте что-то вроде этого:

$('document').ready(function() {
    $('#submit').click(function(event) {
       event.preventDefault();

       var username = $("#gebruikersnaam").val()    
       var password = $("#wachtwoord").val()    

       if (username==="leerkrachten" && password==="leerkrachten") {
          alert("welkom leerkrachten");
          goToUrl();
       }
       else if (username==="leerling" && password==="leerling") {
          alert("welkom leerling");
       }
       else {
          alert("verkeerde gegevens ingevuld");
       }
    });
});

Также используйте === вместо == как операторы для сравнения строк, это предотвращает вас от некоторых странных результатов при сравнении разных типов. Может быть, поэтому он не работает в первый раз, но делает второй раз. В противном случае я не знаю, почему это происходит.

Но на самом деле я должен был бы сказать: НИКОГДА не выполняйте проверку на стороне клиента и НИКОГДА не выполняйте проверку входа с незашифрованным паролем (даже не на стороне сервера)!

  • 0
    Похоже, это не работает для меня хз
  • 0
    Я обновил код. конечно, вам нужно обернуть все это в прослушиватель событий $('document').ready() ...
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню