伪造一个ajax登录框
Faking an AJAX-y login box
我曾被要求为一个项目设计一个登录框原型,目标是模拟AJAX-y登录框。
的想法是:
- 用户名/密码中的用户类型(any;再次强调,这还没有连接到任何db或任何东西),然后按回车
- Throbber出现3秒。
- 显示用户信息
我已经尝试这样做与jQuery按照下面;有人知道我哪里做错了吗?很多谢谢!
<html>
<head>
<link href="c/main.css" media="screen" rel="stylesheet" type="text/css" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" type="text/javascript"></script>
<!--[if lte ie7]>
#header #logo {margin-right: 100px;}
<!-[endif]-->
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery('#login-form').submit(function(){
jQuery('#login-form > *').hide();
jQuery('#throbber').show().delay(300).hide();
jQuery('#logged-in').show();
return false;
});
});
</script>
</head>
<body>
<div id="wrapper">
<div id="utilities"><a href="">Volunteer</a><a href="">About Us</a><input type="text" /></div>
<div id="header">
<img src="i/logo.png" id="logo" />
<div id="pnav-wrapper">
<ul id="pnav">
<li><a href="#">Upgrade Your<br /><span>Skills</span></a></li>
<li><a href="#">Browse<br /><span>Events</span></a></li>
<li><a href="#">Browse<br /><span>Jobs</span></a></li>
</ul>
<div id="login">
<form action="#" method="get" id="login-form">
Username: <input id="username" type="text" /><br />
Password: <input id="password" type="password" />
<input type="submit" style="visibility: hidden;">
</form>
<img src="i/throbber.gif" style="display: none;" id="throbber">
<p id="logged-in" style="display: none;"><strong>The Admin</strong><br />
Administrator
</p>
</div>
</div>
</div>
<div id="content"></div>
</div>
</body>
</html>
delay()
只影响#throbber
的队列(300
为0.3秒)。
相反,使用.hide()
的回调来显示#logged-in
在 #throbber
被隐藏之后:
jQuery('#login-form').submit(function() {
jQuery('#login-form > *').hide();
jQuery('#throbber').show().delay(3000).hide(function() {
jQuery('#logged-in').show();
});
return false;
});
(演示)您需要将delay更改为3000,使整个login-form隐藏而不仅仅是子元素,这部分是关键…将登录的显示代码放入一个回调函数中,在throbber隐藏后执行…这样的:
jQuery('#login-form').submit(function(){
jQuery('#login-form').hide();
jQuery('#throbber').show().delay(3000).hide(function(){
jQuery('#logged-in').show();
});
return false;
});
试试:http://jsfiddle.net/dbhCe/
jQuery(document).ready(function(){
jQuery('#login-form').submit(function(){
jQuery('#login-form').hide();
jQuery('#throbber').show();
window.setTimeout( function() {
jQuery("#throbber").hide();
jQuery('#logged-in').show();
}, 3000);
return false;
});
});
这是一个演示
http://jsfiddle.net/6UwDn/2/相关文章:
- Ajax登录技术(后端php)
- 使用Ajax登录网站
- FOSUserBundle AJAX登录Symfony2(路由)
- ajax登录表单,重新加载到表单而不是页面上
- PHP/AJAX 登录表单
- 这个 Ajax 登录系统是否足够安全
- Ajax登录问题
- Javascript AJAX登录不正常
- Ajax登录未按预期反应
- Ajax登录框没有't调用PHP文件以继续处理
- PHP和AJAX登录表单
- 否'访问控制允许来源'jQuery Ajax登录中的标题
- Javascript哈希在AJAX登录调用,更安全
- 通过AJAX登录,没有错误,但没有结果
- 如何测试一个AJAX登录调用
- 在AJAX登录的Node.js页面重定向?在重定向后使用函数调用
- 不能使用Ajax登录rest式服务器
- Ajax登录没有返回结果
- 使用jquery和php的Ajax登录
- AJAX登录的安全漏洞