Как изменить видимость тега с помощью тега и JavaScript для "фиктивного" входа?
У меня есть страница main.html в нем у меня есть такой код в теге body:
<form method="post">
<p>Username: <input type="text" id="txt1" /></p>
<p>Password: <input type="password" id="pwd1" /><br/></p>
<p>
<input onclick ="checkAdmin()" class = "login_button" type="submit"
name="btn1" value="Login" />
</p>
</form>
Во внешнем .JS файл: функция checkAdmin() {
document.getElementById("private_content").style.visibility="visible";
}
В файле css у меня есть:
.private_content {
visibility: hidden
}
Я хочу изменить видимость на видимость, когда пользователь нажимает на кнопку входа. проблема в том, что когда я нажимаю на кнопку входа в систему, частная часть видна на один момент, а затем исчезает.
Кстати, есть ли список всех распространенных функций JavaScript? я не нашел хорошего для себя. с чего начать??
EDIT-для меня работал следующий код:
Выглядит гораздо приятнее и удобнее использовать jQuery вот пример, который делает то, что я хотел сделать, просто с помощью
Тег, это та же самая идея.Http://www.w3schools.com/jquery/tryit.asp?filename=tryjquery_hide
function onlyHeader(){
$("div").hide();
$("div#login").show();
}
$(document).ready(function(){
onlyHeader();
$("#login_button").click(function(){
var user = $("#username").val();
var pass = $("#password").val();
var ret = checkUser(user,pass);
if (ret) {
$("div").show();
$("div#login").hide();
}
else {
//user is not authorized
}
});
});
Примечание: Вы не проверяете и не храните пароль на стороне клиента. На стороне сервера вы проверяете аутентификацию и сохраняете только хэш о пароле.
3 ответа:
Я хочу изменить видимость на видимость, когда пользователь нажимает на кнопку входа.
Сделайте это на стороне сервера. Если пользователь вошел в систему, то не показывайте форму.
Проблема в том, что когда я нажимаю на кнопку входа в систему, частная часть видна на один момент, а затем исчезает.
Вот что происходит:
- вы модифицируете DOM так, что форма становится невидимой
- браузер отправляет форму (так как нет
action
атрибут IT error восстанавливает и использует текущий URI в качествеaction
). Существуют различные способы предотвратить поведение по умолчанию, когда вы прикрепляете обработчик событий к чему-то, но вы не используете ни один из них.- браузер загружает новую страницу, идентичную старой, со сброшенным DOM в исходное состояние (с видимой формой)
После обработки данных формы (чтобы определить, являются ли учетные данные правильными и войти в систему пользователя, если они есть), затем используйте состояние "вошел в систему" на сервере, чтобы решить не включать разметку формы на странице вообще. Здесь нет необходимости (или пользы) использовать JS.
Кстати, есть ли список всех распространенных функций JavaScript?
Смотрите контент разработчика Mozilla
Я не нашел хорошего для начала??
W3C имеетвведение в веб-стандарты , которое включает в себя некоторый контент JS.
Выглядит гораздо приятнее и удобнее использовать jQuery вот пример, который делает то, что я хотел сделать, просто с тегом
<p>
, это та же идея с<div>
.Http://www.w3schools.com/jquery/tryit.asp?filename=tryjquery_hide
function onlyHeader(){ $("div").hide(); $("div#login").show(); } $(document).ready(function(){ onlyHeader(); $("#login_button").click(function(){ var user = $("#username").val(); var pass = $("#password").val(); var ret = checkUser(user,pass); if (ret) { $("div").show(); $("div#login").hide(); } else { //user is not authorized } });
Это хороший вопрос, и то, что ur спрашивает, очень распространено, вы можете попробовать это редактирование кода ur
<script type="text/javascript"> <!-- function checkAdmin(){ document.getElementById("private_content").style.visible="false"; } --> </script> <div id="private_content"> <form method="post"> <p>Username: <input type="text" id="txt1" /></p> <p>Password: <input type="password" id="pwd1" /><br/></p> <p> <input onclick ="checkAdmin()" class = "login_button" type="submit" name="btn1" value="Login" /> </p> </form> </div>
Вам нужно иметь область и тег, который поддерживает видимый и не видимый я использовал div с идентификатором private_content не было бы возможно без этого идентификатора, где u хочет, чтобы он стал невидимым по щелчку мыши u может сделать противоположное после проверки логина, сделав другую функцию с visible=true