jquery学习笔记 用jquery实现无刷新登录

好了,唠嗑就到这里,现在看如何用jquery实现无刷新登录。
首先先创建html的部分


代码如下:

<table>
<tr>
<td>
用户名:
</td>
<td>
<input type="text" id="username" />
</td>
</tr>
<tr>
<td>
密码:
</td>
<td>
<input type="text" id="password" />
</td>
</tr>
<tr>
<td>
验证码:
</td>
<td>
<input type="text" id="cord" />
<img alt="点击更换验证码" title="看不清楚,请单击我!" id="checkcord" src="img.ashx" />
</td>
</tr>
<tr>
<td>
<input type="button" onclick="login();" value="登录" />
</td>
<td>
</td>
</tr>
</table>

这里面包含的功能有:登录的验证,点击更换验证码。这个没有什么好说的。
下面是jquery的部分


代码如下:

<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>-----------别忘了引用这个链接,否则jquery不能用
<script type="text/javascript">
//用jquery实现无刷新的登录验证
function login() {
$.ajax({
url: 'Login.ashx', //访问路径
data: 'username=' + $("#username").val() + "&password=" + $("#password").val() + "&cord=" + $("#cord").val(), //需要验证的参数
type: 'post', //传值的方式
error: function () {//访问失败时调用的函数
alert("链接服务器错误!");
},
success: function (msg) {//访问成功时调用的函数,这里的msg是Login.ashx返回的值
alert(msg);
}
});
}
//验证码图片
$(function () {
$("#username").focus();
$("#checkcord").click(function () {
$("#checkcord").attr("src", "img.ashx?time=" + new Date());
});
})
</script>

大概的核心代码就是这些了,当用户点击登录按钮时,触发login事件,用jquery向Login.ashx发出请求,在Login.ashx当中,仅仅只是验证用户名和密码是否匹配,验证码是否正确。Login.ashx是用C#语言写的,如果你们学习的是别的语言就将地址更换为别的就可以了。
img.ashx是生成验证码的程序,每点击一次图片都会重新访问img.ashx,所以图片是更换的,在生成图片的时候,会生成存储验证码的session,在Login.ashx当中,判断用户输入的值和session的值是否相同就可以了。在这里我只显示主要的源码了。


代码如下:

context.Response.ContentType = "text/plain";
string username = context.Request.Form["username"];
string password = context.Request.Form["password"];
string cord = context.Request.Form["cord"];
if (context.Session["cord"] != null)
{
if (context.Session["cord"].ToString() == cord)
{
if (username == "admin" && password == "admin")
{
context.Response.Write("登录成功!");
}
else
{
context.Response.Write("登录失败!用户名和密码错误!");
}
}
else
{
context.Response.Write("验证码错误!");
}
}

这是判断登录的代码。
好了,以上就是核心代码,希望大家多多指教。也希望我的笔记对您有用

(0)

相关推荐

  • jQuery学习笔记(4)--Jquery中获取table中某列值的具体思路

    花了一晚上的时间解决了一个看似很容易的问题.今晚做的这个东西中由于要获取某列中的一个ID值.如果是用平常的那种JS传值的方式此问题就不存在,但是由于此次用到的都是jquery插件,包括各种弹出框,用JS传值就得用JS那丑陋的弹出框,所以,你懂得. 网上找了很多方法,用起来都不行,后来想到了jquery中的鼠标事件,可以在鼠标经过table时,获得当前行与列的值.页面如下所示:  具体操作就是点击"删除"按钮,然后调用jquery插件页面,这时候需要获得相应行的"ID"

  • jQuery学习笔记之jQuery.fn.init()的参数分析

    从return new jQuery.fn.init( selector, context, rootjQuery )中可以看出参数selector和context是来自我们在调用jQuery方法时传过来的.那么selector和context都有哪些可能. 对于表格中的4~9行中的可能做具体分析. 如果selector是字符串,则首先检测是html代码还是#id.126行的if语句:以"<"开头,以">"结尾,且长度>=3.则假设额这个是HTML

  • jQuery学习笔记 操作jQuery对象 文档处理

    下面就是一些常用方法,格式为$(selector).方法,其中$(selector)即当前选定元素: 移动元素 方法 描述 append($(selector)) 向当前元素的内部追加内容 appendTo($(selector)) 将当前元素在某元素内部追加.但由于会根据需要对当前元素进行移动,所以jQuery对象更改了,可用end()还原 prepend($(selector)) 向当前元素的内部前置内容 prependTo($(selector)) 将当前元素在某元素内部前置.类似于app

  • jQuery学习笔记之toArray()

    从源码中可以看到,这些常见的方法,都是直接从原生的javascript中"借鉴"过来的.为什么这么说呢?225行中,在运行时,this是指向jQuery对象的,通过call语句借鉴slice方法,切割出一个数组出来,这种"借鸡下蛋"的方法,真的是让人拍手叫绝.slice(start,end)是用来切分数组的.start表示切分数组的开始位置.省略end表示到从start一直到最后

  • jQuery学习笔记之jQuery构建函数的7种方法

    一:$(selectorStr[,限制范围]),接受一个选择器(符合jQuery规范的字符串),返回一个jQuery对象; 复制代码 代码如下: //$(selector[,限制范围])         $(".guo").click(function () {//这里没有context参数             $("a.aguo", this).css({"color":"red"});//this就是context参数

  • jQuery学习笔记 获取jQuery对象

    使用jQuery选择器选择页面元素,目的是为了生成jQuery对象,语法相当简单:$(selector).但值得注意的是,这是生成jQuery对象,不是DOM对象,因此$(selector).innerHTML以获取元素内部HTML代码是错误的,正确写法是$(selector).html().同样的,判断一个DOM对象是否存在,不能够写成if($(selector)),而是if($(selector).length>0). 当然jQuery对象和DOM对象可以互转换.从上面的例子也可以看出,jQ

  • jQuery学习笔记 操作jQuery对象 CSS处理

    CSS基本属性处理 方法 描述 css(name) 获取元素上CSS规则中name属性值 css(name,value) css(name,fn(index,value)) css({name1:value1,-,nameN:valueN}) 设置元素上CSS规则name属性的值为value,也可使用函数参数,不解释:还可以一次性为同一元素设置多个CSS属性 CSS尺寸属性处理 方法 描述 height() 获取元素CSS属性height的值 width() 获取元素CSS属性width的值.这

  • jQuery学习笔记之jQuery原型属性和方法

    复制代码 代码如下: jQuery.fn = jQuery.prototype = {     constructor: jQuery,     init: function( selector, context, rootjQuery ) { },     selector: "",            jquery: "1.7.2",            length: 0,            size: function() {},    toArra

  • jQuery学习笔记之jQuery.extend(),jQuery.fn.extend()分析

    deep是布尔值,表示是否进行深度合并,默认是false,不执行深度合并.通过这种方式可以在jQuery或jQuery.fn上添加新的属性和方法,jQuery的其他模块大都是这么实现的. 给jQuery添加扩展时用$.extend()如:jQuery.extend({add:function(a,b){return a+b}}) 使用:$.add(1,3)=====>4; 给jQuery实例对象添加扩展时用$.fn.extend(); $.fn.extend({gys:function(){$(

  • jQuery学习笔记 操作jQuery对象 属性处理

    元素的属性处理 方法 描述 attr(name) attr(name,value) attr(name,fn(index,value)) attr({name1:value1,-,nameN:valueN}) 获取某个属性的取值,或可以用于设置某个属性的值.还可以使用函数作为参数,将函数返回值作为需要为元素属性设置的值,比如将第(index+1)个元素的name属性设置为函数返回值(实际上,明白函数式就根本不需要这说明).也可以一次性给同一元素多个属性 removeAttr(name) 删除某个

  • jQuery学习笔记之总体架构

    先来看代码: 复制代码 代码如下: (function (window, undefined) {            //构建jQuery对象            var document = window.document,                navigator = window.navigator,                location = window.location;            var jQuery = (function () {       

随机推荐