jquery中的Deferred对象的pipe方法的疑惑!

ywweini21 2013-03-16 09:40:43
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>99_jquery36_deferred的pipe讲解.avi</title>
<style type="text/css">

</style>
<script type="text/javascript" src="../jquery-1.8.3.js"></script>

<script type="text/javascript">
$(function () {
$("#btn").click(function () {
var username = $("#username").val();
var password = $("#password").val();
//验证用户

$.getJSON("user.json").pipe(function (data) {
if (checkUser(data, username, password)) {
//如果正确就返回第二次验证
return $.getJSON("status.json");
//????????这里return这个对象有什么作用????????
} else {
//如果错误就返回错误信息
var def = $.Deferred();
def.reject("用户名或者密码不正确");
//?????????reject方法里面的参数是传递给谁的?????????
return def;
//????????这里return这个对象又是什么作用??????????
}
}).pipe(function (data) {

if (checkStatus(data, username)) {
return username;
} else {
var def = $.Deferred();
def.reject("用户已经被停用!请与管理员联系!");
return def;
}

}).done(function (data) {
$("#content").html("欢迎你" + data + "登陆我们的系统!");

}).fail(function (data) {
$("#content").html(data);

});
});

function checkStatus(data, username) {
alert(data[i]["name"]);
for (var i = 0; i < data.length; i++) {
if (data[i]["name"] == username) {
if (data[i]["status"] == 1) {
return true;
}
}
}
return false;
}


function checkUser(data, username, password) {

for (var i = 0; i < data.length; i++) {
if (data[i]["name"] == username) {
if (data[i]["password"] == password) {
return true;
}
}
}
return false;
}

});
</script>
</head>
<body>
用户姓名:<input type="text" name="username" id="username" /><br />
用户密码:<input type="password" name="password" id="password" /><br />
<input type="button" value="用户验证" id="btn" />
<div id="content"></div>
</body>
</html>
...全文
170 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

87,991

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧