实现代码:
aspx代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Verify.aspx.cs" Inherits="Verify" %>

<!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;
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的数据验证相关推荐

  1. 通达OA二次开发 开发基于AJAX技术数据列表控件的智能表单(图文)

    按照人鱼兄弟的思路,自己也做了一个这样的表单,数据智能提取的效率大大提高,更主要的是数据获取及变换的形式更灵活,完全可以自己编程进行控制.感谢大怪兽的技术支持,这里面用到很多js的东西大怪兽研究的还是 ...

  2. 基于Ajax提交formdata数据、错误信息展示和局部钩子、全局钩子的校验。

    formdata重点: 实例化FormData这个类 循环serializeArray可以节省代码量 图片要用$('#id')[0].files[0]来获得 加上contentType:false和p ...

  3. 基于jquery,bootstrap数据验证插件bootstrapValidator 教程

    ootstrap:能够增加兼容性的强大框架. 因为项目需要数据验证,看bootstrapValidator 还不错,就上手一直,完美兼容,话不多说. 需要引用css: bootstrap.min.cs ...

  4. Django,Ajax,文件上传,ajax发送json数据,基于Ajax的文件上传

    JSON JSON指的是JavaScript对象方法(JavaScript Object Notation) JSON是轻量级的文本数据交换格式 JSON独立于语言 JSON具有自我i描述,更易理解 ...

  5. ajax获取网页新闻,基于Ajax的新闻网页动态数据的抓取方法及系统

    主权项: 1.基于Ajax的新闻网页动态数据的抓取方法,其特征是,包括如下步骤:步骤(101):建立新闻网页爬取内容数据库,设置新闻网页爬取内容数据库的编码方式:获得待抓取新闻网页的新闻列表页面的UR ...

  6. 【转】基于jquery,bootstrap数据验证插件bootstrapValidator 教程

    bootstrap:能够增加兼容性的强大框架. 因为项目需要数据验证,看bootstrapValidator 还不错,就上手一直,完美兼容,话不多说. 需要引用css: bootstrap.min.c ...

  7. 用户数据表设计借鉴 浅谈数据库用户表结构设计,第三方登录 基于 Token 的身份验证

    最近对用户数据表的设计比较感兴趣,看到了两篇比较好的文章. 浅谈数据库用户表结构设计,第三方登录 转载于: https://www.cnblogs.com/jiqing9006/p/5937733.h ...

  8. 基于Token进行身份验证

    1.基于服务器的验证 我们都是知道HTTP协议是无状态的,这种无状态意味着程序需要验证每一次请求,从而辨别客户端的身份.  在这之前,程序都是通过在服务端存储的登录信息来辨别请求的.这种方式一般都是通 ...

  9. 【转】基于Token的身份验证原理

    目录 1 发展史 2 Cookie 3 Session 3.1 cookie和session的区别 4 Token 4.1 传统方式--基于服务器的验证 4.2 基于服务器验证方式暴露的一些问题 4. ...

最新文章

  1. php cpp,【PHP】libphpcpp.so编译
  2. linux远程执行shell命令行,linux shell 远程执行命令--ftp
  3. python数据分析方向_python数据分析方向,面试题解答
  4. linux 内核维护,Linux 4.18内核系列生命周期结束:用户需尽快更新内核
  5. order by 子查询_视图,子查询,标量子查询,关联子查询
  6. Linux--结构体的详细学习
  7. 在Eclipse中搭建Python Django
  8. 方立勋_30天掌握JavaWeb_(JSP+JavaBean实现)简单计算器
  9. 现在资本进入社区团购,大搞补贴战,算不算涉嫌扰乱市场,垄断?
  10. c+调用java编写mq_C语言实现mq收发数据的函数
  11. Java Swing中键盘事件的处理
  12. 基于stm32智能风扇_意法半导体和Fieldscale为基于STM32的智能设备带来简单直观的触控体验...
  13. Windows移动开发(三)——闭关修炼
  14. java servlet 对象_java servlet的域对象
  15. 2020,我的年终总结(附优惠券)
  16. 函数在某点附近有界,但该点无极限值的例子
  17. 烟道机器人_力荐顺义区清洗烟道价格多少钱值得信赖
  18. 创业计划书学习笔记二——创业计划书的目录结构与执行概览部分的写作方法
  19. oppoa79支持手机html,oppo a79驱动
  20. 向量场的散度和旋度_矢量场散度和旋度的物理意义

热门文章

  1. 从NT向solaris 8移植C/C++应用
  2. Exploring your Postgraduate Study Options
  3. bike with a famous logo
  4. 引用校长对于管理工程学的学术研究的思考
  5. deepl真的有取代一般翻译的能力,这吞吐量和稳定性...亲测有效
  6. 《守望先锋》阵亡镜头、全场最佳和亮眼表现是如何设计
  7. Python 学习笔记(一)
  8. STM32之独立版USB(Host)驱动+MSC+Fatfs移植
  9. 深入浅出Mybatis系列(一)---Mybatis入门
  10. TopHQBooks – PDF 搜索引擎 - 小众软件