标签:
在web开发中,我们总希望实现同样的功能,客户端和服务器端交互的次数越少越好。这样既可以提高用户浏览的进度,也可以减少服务器的压力,现在web开发中的“登录模块”设计为例,实现客户端验证账号密码长度是否符合要求,符合要求,服务端程序再进一步验证。
流程:1.用户输入账号密码
2.客户端的JavaScript代码对TextBox中字符的长度进行验证
3.若长度不符合要求,则不转入执行服务器程序
4.若长度符合要求,则转而执行服务器程序,将信息和数据库中信息进行比对。
以上是程序执行的流程,读者可以继续往下看代码分析,也可以点击这里下载源代码自己研究。
首先我们在login.aspx(前台)中添加两个文本框,一个按钮,界面如图:
前台代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="login.aspx.cs" Inherits="login" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>测试</title> <style type="text/css"> #box{border:2px solid #00ffff; width:250px; margin-left:auto; margin-right:auto; margin-top:100px; padding:10px;} #bt_commit{margin-left:150px;} </style> </head> <body> <form id="form1" runat="server"> <div id="box"> 账号:<asp:TextBox ID="txt_usr" runat="server"></asp:TextBox><br /><br /> 密码:<asp:TextBox ID="txt_pwd" runat="server" TextMode="Password" ></asp:TextBox><br /><br /> <asp:Button ID="bt_commit" runat="server" Text="登录" /> </div> </form> </body> </html>
后台代码:(还没有添加任何自定义代码)
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class login : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void bt_commit_Click(object sender, EventArgs e) { } }
然后在前台后和后台添加相应代码,如下:
前台:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="login.aspx.cs" Inherits="login" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>测试</title> <style type="text/css"> #box{border:2px solid #00ffff; width:250px; margin-left:auto; margin-right:auto; margin-top:100px; padding:10px;} #bt_commit{margin-left:150px;} </style> <script type="text/javascript"> function yanzheng() { var usr_len = document.getElementById("txt_usr").value; var pwd_len = document.getElementById("txt_pwd").value; if(usr_len.length<1) { alert("请输入账号!"); return false; } else if(pwd_len.length<6||pwd_len.length>20) { alert("密码长度不合法!"); return false; } else { return true; } } </script> </head> <body> <form id="form1" runat="server"> <div id="box"> 账号:<asp:TextBox ID="txt_usr" runat="server"></asp:TextBox><br /><br /> 密码:<asp:TextBox ID="txt_pwd" runat="server" TextMode="Password"></asp:TextBox><br /><br /> <asp:Button ID="bt_commit" runat="server" Text="登录" OnClick="bt_commit_Click" /> </div> </form> </body> </html>
后台:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class login : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { bt_commit.Attributes.Add("OnClick", "return yanzheng()"); } } protected void bt_commit_Click(object sender, EventArgs e) { Page.ClientScript.RegisterStartupScript(typeof(Page), "", "<script>alert(‘客户端验证通过!‘);</script>"); } }
这样就可以实现只有在客户端(前台)验证通过的情况下才会执行服务端(后台)代码。点这里下载源代码。
运行结果如图:
标签:
原文地址:http://www.cnblogs.com/robothy/p/4622870.html