本文實例講述了jQuery使用$.ajax進行即時驗證的方法。分享給大家參考,具體如下:
使用jQuery和一般處理程序即時驗證使用者輸入的學號是否重複,當遊標離開輸入框即給予提示。
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="AddStudent.aspx.cs" Inherits="AddStudent" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <style type="text/css"> .clsShow { font-size: 13px; border: solid 1px #cc3300; padding: 2px; display: none; margin-bottom: 5px; background-color: #ffe0a3; } </style> <script type="text/javascript" src="Scripts/jquery-1.4.2.js"></script> <script type="text/javascript"> $(function () { $("#btnSave").click(function () { if ($(".clsShow").html().toString() != "")//存在提示信息,则不允许提交表单 return false; else return true; }); $("#txtNum").focus(); //输入焦点 $("#txtNum").keydown(function (event) { if (event.which == "13") {//回车键,移动光标到密码框 $("#txtName").focus(); $("#txtNum").trigger("blur"); } }); $("#txtNum").blur(function () { //获取学号 var strTxtName = encodeURI($("#txtNum").val()); //开始发送数据 $.ajax ({ //请求验证学号是否重复 url: "Check.ashx", type: "post", //传送请求数据 data: { txtNum: strTxtName }, success: function (strValue) { //登录成功后返回的数据 //根据返回值进行状态显示 if (strValue == "True") {//注意是True,不是true $(".clsShow").css("display", "inline"); $(".clsShow").html("学号已存在,请修改!"); } else { $(".clsShow").hide(); //就是把display属性变成none $(".clsShow").html(""); } } }) }) }) </script> </head> <body> <form id="form1" runat="server"> <div> 学号:<asp:TextBox ID="txtNum" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtNum" ErrorMessage="不能为空"></asp:RequiredFieldValidator> <div class="clsShow"></div> <br /> 姓名:<asp:TextBox ID="txtName" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="txtName" ErrorMessage="不能为空"></asp:RequiredFieldValidator> <br /> 数学:<asp:TextBox ID="txtMath" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="txtMath" ErrorMessage="不能为空"></asp:RequiredFieldValidator> <asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="txtMath" ErrorMessage="分数在0-100之间" MaximumValue="100" MinimumValue="0" Type="Integer"></asp:RangeValidator> <br /> 英语:<asp:TextBox ID="txtEnglish" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ControlToValidate="txtEnglish" ErrorMessage="不能为空"></asp:RequiredFieldValidator> <asp:RangeValidator ID="RangeValidator2" runat="server" ControlToValidate="txtEnglish" ErrorMessage="分数在0-100之间" MaximumValue="100" MinimumValue="0" Type="Integer"></asp:RangeValidator> <br /> 语文:<asp:TextBox ID="txtChinese" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" ControlToValidate="txtChinese" ErrorMessage="不能为空"></asp:RequiredFieldValidator> <asp:RangeValidator ID="RangeValidator3" runat="server" ControlToValidate="txtChinese" ErrorMessage="分数在0-100之间" MaximumValue="100" MinimumValue="0" Type="Integer"></asp:RangeValidator> <br /> <asp:Button ID="btnSave" runat="server" Text="保存" onclick="btnSave_Click" /> <asp:Button ID="btnBack" runat="server" Text="返回" CausesValidation="False" onclick="btnBack_Click" /> <asp:Label ID="lblMsg" runat="server"></asp:Label> </div> </form> </body> </html>
一般處理程序Check.ashx程式碼:
<%@ WebHandler Language="C#" class="Check" %> using System; using System.Web; public class Check : IHttpHandler { public void ProcessRequest (HttpContext context) { context.Response.ContentType = "text/plain"; string num = context.Request["txtNum"].ToString(); bool result = false; if(num=="12")//为了简化代码,没有访问数据库。实际项目应查询数据库。 { result = true; } context.Response.Write(result); } public bool IsReusable { get { return false; } } }
希望本文所述對大家jQuery程式設計有所幫助。