Я пытаюсь создать небольшую систему входа в систему, используя 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';
};
Вместо 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");
}
});
});
Также используйте ===
вместо ==
как операторы для сравнения строк, это предотвращает вас от некоторых странных результатов при сравнении разных типов. Может быть, поэтому он не работает в первый раз, но делает второй раз. В противном случае я не знаю, почему это происходит.
Но на самом деле я должен был бы сказать: НИКОГДА не выполняйте проверку на стороне клиента и НИКОГДА не выполняйте проверку входа с незашифрованным паролем (даже не на стороне сервера)!
$('document').ready()
...