基于ajax的数据验证
实现代码:
aspx代码如下:
<!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>Verify</title>
<script language="jscript">
function VerifyUsername(name)
{
Verify.GetReturnCode(name,IsUsernameExist_callback);
}
function IsUsernameExist_callback(res)
{
var msg = document.getElementById("lblMessage");
var bRet = res.value;
if(bRet == "0")
{
msg.innerHTML = "用户名存在!";
msg.style.color = "green";
}
else if(bRet == "1")
{
msg.innerHTML = "用户名长度必须在3到15之间,且不包含字母、数字和下划线以外的字符!";
msg.style.color = "red";
}
else
{
msg.innerHTML = "用户名不存在!";
msg.style.color = "red";
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<h1>基于Ajax的数据验证</h1>
<hr />
<asp:Label ID="Label1" runat="server">用户名:</asp:Label>
<input type="text" id="tbUsername" onkeyup="VerifyUsername(this.value)" /><br />
<asp:Label ID="lblMessage" runat="server"></asp:Label>
</div>
</form>
</body>
</html>
后台C#代码:
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text.RegularExpressions;
public partial class Verify : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(Verify));
//作用是向客户端输出下面的代码:
//<script type="text/javascript" src="/ajaxprotest/ajaxpro/prototype.ashx"></script>
//<script type="text/javascript" src="/ajaxprotest/ajaxpro/core.ashx"></script>
//<script type="text/javascript" src="/ajaxprotest/ajaxpro/converter.ashx"></script>
//<script type="text/javascript" src="/ajaxprotest/ajaxpro/Verify,App_Web_elgsobcn.ashx"></script>
}
//加上[AjaxPro.AjaxMethod],才能被客户端访问
[AjaxPro.AjaxMethod]
public string GetReturnCode(string strUsername)
{
if (!IsValidUsername(strUsername))
{
return "1";
}
else if (!IsUsernameExist(strUsername))
{
return "2";
}
else
{
return "0";
}
}
private bool IsUsernameExist(string strUsername)
{
bool bRet = false;
switch (strUsername.ToLower())
{
case "test":
case "tom":
case "jack":
case "ajax":
case "aspnet":
case "nic":
bRet = true;
break;
}
return bRet;
}
private bool IsValidUsername(string strUsername)
{
return (Regex.IsMatch(strUsername, @"^(\w{3,15})$"));
}
private bool IsValidEmail(string strEmail)
{
return (Regex.IsMatch(strEmail, @"^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$"));
}
}
说明:我这里使用了ajaxpro.net库进行开发,大家可以在网络上找找最新版的ajaxpro.net库,下载后在项目里引用就可以了!
转载于:https://www.cnblogs.com/huanggenying/archive/2007/11/28/975154.html
基于ajax的数据验证相关推荐
- 通达OA二次开发 开发基于AJAX技术数据列表控件的智能表单(图文)
按照人鱼兄弟的思路,自己也做了一个这样的表单,数据智能提取的效率大大提高,更主要的是数据获取及变换的形式更灵活,完全可以自己编程进行控制.感谢大怪兽的技术支持,这里面用到很多js的东西大怪兽研究的还是 ...
- 基于Ajax提交formdata数据、错误信息展示和局部钩子、全局钩子的校验。
formdata重点: 实例化FormData这个类 循环serializeArray可以节省代码量 图片要用$('#id')[0].files[0]来获得 加上contentType:false和p ...
- 基于jquery,bootstrap数据验证插件bootstrapValidator 教程
ootstrap:能够增加兼容性的强大框架. 因为项目需要数据验证,看bootstrapValidator 还不错,就上手一直,完美兼容,话不多说. 需要引用css: bootstrap.min.cs ...
- Django,Ajax,文件上传,ajax发送json数据,基于Ajax的文件上传
JSON JSON指的是JavaScript对象方法(JavaScript Object Notation) JSON是轻量级的文本数据交换格式 JSON独立于语言 JSON具有自我i描述,更易理解 ...
- ajax获取网页新闻,基于Ajax的新闻网页动态数据的抓取方法及系统
主权项: 1.基于Ajax的新闻网页动态数据的抓取方法,其特征是,包括如下步骤:步骤(101):建立新闻网页爬取内容数据库,设置新闻网页爬取内容数据库的编码方式:获得待抓取新闻网页的新闻列表页面的UR ...
- 【转】基于jquery,bootstrap数据验证插件bootstrapValidator 教程
bootstrap:能够增加兼容性的强大框架. 因为项目需要数据验证,看bootstrapValidator 还不错,就上手一直,完美兼容,话不多说. 需要引用css: bootstrap.min.c ...
- 用户数据表设计借鉴 浅谈数据库用户表结构设计,第三方登录 基于 Token 的身份验证
最近对用户数据表的设计比较感兴趣,看到了两篇比较好的文章. 浅谈数据库用户表结构设计,第三方登录 转载于: https://www.cnblogs.com/jiqing9006/p/5937733.h ...
- 基于Token进行身份验证
1.基于服务器的验证 我们都是知道HTTP协议是无状态的,这种无状态意味着程序需要验证每一次请求,从而辨别客户端的身份. 在这之前,程序都是通过在服务端存储的登录信息来辨别请求的.这种方式一般都是通 ...
- 【转】基于Token的身份验证原理
目录 1 发展史 2 Cookie 3 Session 3.1 cookie和session的区别 4 Token 4.1 传统方式--基于服务器的验证 4.2 基于服务器验证方式暴露的一些问题 4. ...
最新文章
- php cpp,【PHP】libphpcpp.so编译
- linux远程执行shell命令行,linux shell 远程执行命令--ftp
- python数据分析方向_python数据分析方向,面试题解答
- linux 内核维护,Linux 4.18内核系列生命周期结束:用户需尽快更新内核
- order by 子查询_视图,子查询,标量子查询,关联子查询
- Linux--结构体的详细学习
- 在Eclipse中搭建Python Django
- 方立勋_30天掌握JavaWeb_(JSP+JavaBean实现)简单计算器
- 现在资本进入社区团购,大搞补贴战,算不算涉嫌扰乱市场,垄断?
- c+调用java编写mq_C语言实现mq收发数据的函数
- Java Swing中键盘事件的处理
- 基于stm32智能风扇_意法半导体和Fieldscale为基于STM32的智能设备带来简单直观的触控体验...
- Windows移动开发(三)——闭关修炼
- java servlet 对象_java servlet的域对象
- 2020,我的年终总结(附优惠券)
- 函数在某点附近有界,但该点无极限值的例子
- 烟道机器人_力荐顺义区清洗烟道价格多少钱值得信赖
- 创业计划书学习笔记二——创业计划书的目录结构与执行概览部分的写作方法
- oppoa79支持手机html,oppo a79驱动
- 向量场的散度和旋度_矢量场散度和旋度的物理意义
热门文章
- 从NT向solaris 8移植C/C++应用
- Exploring your Postgraduate Study Options
- bike with a famous logo
- 引用校长对于管理工程学的学术研究的思考
- deepl真的有取代一般翻译的能力,这吞吐量和稳定性...亲测有效
- 《守望先锋》阵亡镜头、全场最佳和亮眼表现是如何设计
- Python 学习笔记(一)
- STM32之独立版USB(Host)驱动+MSC+Fatfs移植
- 深入浅出Mybatis系列(一)---Mybatis入门
- TopHQBooks – PDF 搜索引擎 - 小众软件