ASP.NET AJAX:数据验证(模拟检测用户名是否存在)

数据验证涉及到很多方面的东西,在当前的技术领域里,从技术上来看可以说是分为传统的验证(同 步方式)和Ajax(异步方式)验证。如果从功能验证上来看的话就包罗万象了。比如非空验证,对等验证 ,格式验证等等。在.NET里还有专门用于验证的的几个常见验证控件,RequiredFieldValidator, RangeValidator,RegularExpressionValidator,CompareValidator,CustomValidator以及 ValidationSummary等,这里不讨论他们的使用及原理。

一. 传统的验证方式

在传统的验证中是采用同步表单提交的方法来处理的验证请求。这种验证方式的缺点很显然而知了。 表单提交一是传输的数据量比较大消耗资源,二是页面处于同步方式随着表单的提交会刷新页面。下面我 看来看看一个简单的传统验证的实例:

建议一个ASP.NET项目,将默认页面改名为:TraditValidation.aspx,在页面.cs里定义一个模拟数据 的方法如下:

1/**//// <summary>
2/// 模拟一个数据字典.判断用户名是否存在
3/// </summary>
4/// <param name="strUsername"></param>
5/// <returns></returns>
6private bool IsUsernameExist(string strUsername)
7{
8  bool bRet = false;
9
10  switch (strUsername.ToLower())
11  {
12   case "beniao":
13   case "java":
14   case "admin":
15   case "ajax":
16   case "aspnet":
17   bRet = true; break;
18  }
19  return bRet;
20} 

接下来转到TraditValidation.aspx的html视图下,定义一个JavaScript方法来验证输入数据的合法性 。

<script language="javascript">
function checkFrm()
{
   var tbUsername = document.getElementById("tbUsername");
   var msg = document.getElementById("lblMessage");
   var re = /^(\w{3,15})$/gim;
   if (re.test(tbUsername.value))
   {
     return true;
   }
   else
   {
     msg.innerHTML = "长度必须在3到15之间,且不包含字母、数字和下划线以外的字符!";
   msg.style.color = "red";
   return false;
   }
}
</script>

时间: 2024-09-19 09:06:49

ASP.NET AJAX:数据验证(模拟检测用户名是否存在)的相关文章

asp.net mvc3 数据验证(三)—自定义数据注解

原文:asp.net mvc3 数据验证(三)-自定义数据注解         前两节讲的都是asp.net mvc3预先设定的数据注解,但是系统自由的数据注解肯定不适合所有的场合,所以有时候我们需要自定义数据注解.         自定义数据注解有两种,一种是直接写在模型对象中,这样做的好处是验证时只需要关心一种模型对象的验证逻辑,缺点也是显而易见的,那就是不能重用.                                             还有一种是封装在自定义的数据注解中,优

asp.net mvc3 数据验证(四)—Remote验证的一个注意事项

原文:asp.net mvc3 数据验证(四)-Remote验证的一个注意事项         前几篇把asp.net mvc3 中基于Model的主要数据验证的方法都已经讲完了,本节纯粹只是讲一个我曾经遇到的问题,因为和数据验证相关,所以就放在了这系列的文章中.         经过前几篇文章的分享,大家应该觉得asp.net 自带的Remote远程数据注解比较好用,但是我在实际使用中却遇到了问题.         首先,一般来说对于一个属性的验证可能需要不止一个的远程验证,比如对于用户名来说

AJAX应用实例之检测用户名是否唯一(实例代码)

先给大家展示下效果图,然后再给大家撸代码,效果图如下所示: 下面写一个简单的例子,检测用户名是否唯一(直接撸代码): 前端界面: <%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transition

Yii基于CActiveForm的Ajax数据验证用法示例_php实例

本文实例讲述了Yii基于CActiveForm的Ajax数据验证用法.分享给大家供大家参考,具体如下: 1. 视图定义form表单开启ajax验证 $form = $this->beginWidget('CActiveForm', array( 'id'=>'zdzone-form', 'enableAjaxValidation'=>true,//开启ajax验证 'enableClientValidation'=>true,//开启客户端验证,生成js 'action'=>

Yii基于CActiveForm的Ajax数据验证用法示例

本文实例讲述了Yii基于CActiveForm的Ajax数据验证用法.分享给大家供大家参考,具体如下: 1. 视图定义form表单开启ajax验证 $form = $this->beginWidget('CActiveForm', array( 'id'=>'zdzone-form', 'enableAjaxValidation'=>true,//开启ajax验证 'enableClientValidation'=>true,//开启客户端验证,生成js 'action'=>

ASP.NET MVC 数据验证及相关内容_实用技巧

一.数据验证 数据验证的步骤在模型类中添加与验证相关的特性标记在客户端导入与验证相关的js文件和css文件使用与验证相关的Html辅助方法在服务器端判断是否通过服务器端验证常用的验证标记 Required:非空验证StringLength:验证字符串的长度RegularExpression:正则表达式验证Compare:比较两个字段的值是否相等Range:范围验证Remote:服务器验证(需要在controller中编写返回值为JsonResult的Action)自定义验证标记与验证相关的js文

Javascript级联下拉菜单以及AJAX数据验证核心代码_javascript技巧

虽然也使用了Prototype.js来编写,但是由于对它的不了解,类的实现仍然是使用了<JavaScript高级程序设计>里的方法.使用AJAX进行数据验证时,最初使用的是XML来当数据源,然而在使用了一段时间后,发现XML效率太低,于是又使用JSON来做为数据源. 一年过去了,客户又提出了新的需求,最初是只要输入框的两个数据相符就行,现在的要求是两个下拉菜单的数据也要相符,于是,我利用此机会,将代码重构了一次. 需求: 1.根据下拉菜单产品名称.产品包装的选择,右面的图片要进行相应的变化.

ASP.NET MVC数据验证

关于ASP.NET MVC的验证,用起来很特别,因为MS的封装,使人理解起来很费解.也可能很多人都在Scott Guthrie等人写的一本<ASP.NET MVC 1.0>书中,见过NerdDinner项目中对Dinner对象修改和添加的时的数据验证.但有许多封装的地方,不知道是怎样的工作原理,今天研究了,拿出来给大家分享一下. 数据库还是上一篇blog中的库与表,同样的方法来创建news表的实体类,在自动生成的news这个实体类中,我们发现有一个特殊的分部方法: partial void O

艾伟_转载:ASP.NET MVC数据验证

关于ASP.NET MVC的验证,用起来很特别,因为MS的封装,使人理解起来很费解.也可能很多人都在Scott Guthrie等人写的一本<ASP.NET MVC 1.0>书中,见过NerdDinner项目中对Dinner对象修改和添加的时的数据验证.但有许多封装的地方,不知道是怎样的工作原理,今天研究了,拿出来给大家分享一下. 数据库还是上一篇blog中的库与表,同样的方法来创建news表的实体类,在自动生成的news这个实体类中,我们发现有一个特殊的分部方法: partial void O