ASP.NET MVC结合jQuery插件进行数据验证

jQuery Validation是一个强大的数据验证插件,该插件支持“validation
rule”即验证规则,规则将对表单内的输入控件进行控制或约束,譬如“本项必填”,“本项不能少于n个字符”,或者“这不是一个有效的email地址”
等等。这些规则大多数和asp.net本身的验证控件类似。遗憾的是asp.net本身的验证控件不能在MVC框架下工作,因为服务器端控件受页面的
ViewState限制,而MVC框架是没有ViewState特性的……

一条规则有两种方式应用到输入框中:

1,声明,在输入框中设置class属性。

PLAIN
TEXT

HTML:

  1. <input name="email"
    id="email" maxlength="60"
    class="required
    email" type="text"/>

     

    可以看到标记中的class属性被设为“required”和“email”,这表示该输入框是必填的和被约束为合法email字符串内容的的规则。这种多个规则用于一个区域的形式必须要由一个空格符分开。

    2,为规则指定脚本。

    PLAIN
    TEXT

    JavaScript:

    1. <script
      type="text/javascript">
    2. $(document).ready(function(){
    3. $("#form-sign-up").validate(
      {
    4. rules:
      {
    5. email:
      {
    6. required:
      true,
    7. email:
      true
    8. },
    9. messages:
      {
    10. email:
      {
    11. required:
      "Please provide an email",
    12. email:
      "Please provide a valid email"
    13. } });
    14. });
    15. </script>

     

    指定id为“form-sign-up”的表单容器里的id为“email”的输入框的规则,并且还设定了当验证用户输入失败时所显示的相应的提示信息。这些提示信息可以在脚本中的“messages”部分里进行自定义设置。提示信息是可选项,jQuery
    Validation插件提供了一套预先定义的提示信息。如果想提高用户体验效果,建议设置更友好的提示信息。

    最后还有一种更有趣更重要的规则方式就是“remote”即“远程规则”,也可以称其为“服务器端验证”(上面的验证都是在客户浏览器端完成)。验证处理在服务器端进行,常用于用户名是否存在之类验证,很重要。AJAX形式执行远程的验证处理,可以使用MVC的控制器方法。

    PLAIN
    TEXT

    JavaScript:

    1. <script
      type="text/javascript">
    2. $(document).ready(function(){
    3. $("#form-sign-up").validate(
      {
    4. rules:
      {
    5. login:
      {
    6. required:
      true,
    7. remote:
      '<%=Url.Action("IsLoginAvailable", "Accounts")
      %>'
    8. }
    9. },
    10. messages:
      {
    11. login:
      {
    12. required:
      "Please provide an alias",
    13. remote:
      jQuery.format("{0} is already in
      use")
    14. }
    15. } });
    16. });
    17. </script>

     

    在服务器控制器端唯一的要求就是Json结果返回验证结果。在MVC框架中是很容易做到的:

    PLAIN
    TEXT

    C#:

    1. public JsonResult IsLoginAvailable(string
      login)
    2. {
    3. JsonResult
      result = new JsonResult();
    4. if (login ==
      "boho")
    5. result.Data = false;
    6. else
    7. result.Data = true;
    8. return result;
    9. }

    在上面的处理中,如果输入框输入的数据为"boho",验证失败,并且用户会看到一条错误消息“boho is already in use”

    错误信息的样式:

    PLAIN
    TEXT

    CSS:

    1. label.error {
    2. display: block;
    3. color: red;
    4. font-style: italic;
    5. font-weight: normal;
    6. }
    7. input.error {
    8. border: 2px solid red;
    9. }
    10. td.field input.error, td.field select.error, tr.errorRow td.field
      input,tr.errorRow td.field select {
    11. border: 2px solid red;
    12. background-color:
      #FFFFD5;
    13. margin: 0px;
    14. color: red;
    15. }

      在这可以下载示例代码

     

时间: 2024-09-24 16:14:32

ASP.NET MVC结合jQuery插件进行数据验证的相关文章

jquery插件bootstrapValidator数据验证详解_javascript技巧

因为项目需要数据验证,看bootstrapValidator 还不错,就上手一直,完美兼容,话不多说. bootstrap:能够增加兼容性的强大框架. 需要引用css: bootstrap.min.css bootstrapValidator.min.css js: jquery-1.10.2.min.js bootstrap.min.js bootstrapValidator.min.js (下载实例) 以上这些都是必须的. 先上个简单的例子,只要导入相应的文件可以直接运行: <!DOCTYP

ASP.NET Mvc开发之删除修改数据_实用技巧

之前那篇文章介绍了ASP.NET MVC使用EF来查询数据和EF中DbQuery<T>泛型对象对数据的延迟加载.今天我们就来看看我们怎么使用EF来删除数据. 其实现在的Web开发通用的模式就是前端使用Js和JQuery来和后端进行数据交互.那么我们就在前端来加两个删除和更新的脚本.代码如下: <!--遍历 Action方法 设置给 ViewData 的集合数据,生成HTML代码--> @foreach (BlogArticle a in ViewData["DataLis

ASP.NET MVC 5 学习教程:数据迁移之添加字段

原文 ASP.NET MVC 5 学习教程:数据迁移之添加字段 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字符串 通过控制器访问模型的数据 生成的代码详解 使用 SQL Server LocalDB Edit方法和Edit视图详解 添加查询 Entity Framework 数据迁移之添加字段 添加验证 Details 和 Delete 方法详解 在本节中,我们将使用Entity Framework Cod

【译】ASP.NET MVC 5 教程 - 10:添加验证

原文:[译]ASP.NET MVC 5 教程 - 10:添加验证 在本节中,我们将为Movie模型添加验证逻辑,并确认验证规则在用户试图使用程序创建和编辑电影时有效. DRY 原则 ASP.NET MVC 的一个核心原则是DRY(Don't Repeat Yourself - 不做重复的事情).ASP.NET MVC 鼓励你一次性的指定功能或行为,然后应用程序的其它地方通过映射得到它,这样一来就减少了大量的代码,从而减少了出错误的可能性,并且更易于维护. ASP.NET  MVC  和 Enti

ASP.NET MVC 5 学习教程:添加验证

原文 ASP.NET MVC 5 学习教程:添加验证 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字符串 通过控制器访问模型的数据 生成的代码详解 使用 SQL Server LocalDB Edit方法和Edit视图详解 添加查询 Entity Framework 数据迁移之添加字段 添加验证 Details 和 Delete 方法详解 在本节中,我们将为Movie模型添加验证逻辑,并确认验证规则在用户试图

ASP.NET MVC基于标注特性的Model验证:将ValidationAttribute应用到参数上

ASP.NET MVC默认采用基于标准特性的Model验证机制,但是只有应用在Model类型及其属性上的ValidationAttribute才有效.如果我们能够将ValidationAttribute特性直接应用到参数上,我们不但可以实现简单类型(比如int.double等)数据的Model验证,还能够实现"一个Model类型,多种验证规则",本篇文章将为你提供相关的解决方案(源代码从这里下载). 一.ValidationAttribute本身是可以应用到参数上的 如果你够细心应该会

ASP.NET MVC基于标注特性的Model验证:ValidationAttribute

通过前面的介绍我们知道ModelValidatorProviders的静态只读Providers维护着一个全局的ModelValidatorProvider列表,最终用于Model验证的ModelValidator都是通过这些ModelValidatorProvider来提供的.对于该列表默认包含的三种ModelValidatorProvider来说,DataAnnotationsModelValidatorProvider无疑是最重要的,ASP.NET MVC默认提供的基于数据标注特性的声明式

支持ASP.NET MVC、WebFroM的表单验证框架ValidationSuar使用介绍

  这篇文章主要介绍了支持ASP.NET MVC.WebFroM的表单验证框架ValidationSuar使用介绍,本文详细讲解了使用步骤,并给出一个完整Demo下载,需要的朋友可以参考下 1.支持javascript端和后端的双重验证 (前端目前依赖于jquery.validate.js,也可以自已扩展) 2.代码简洁 3.调用方便 4.功能齐全 使用方法: 新建初始化类,将所有需要验证的在该类进行初始化,语法相当简洁并且可以统一管理,写完这个类你的验证就完成了70% 函数介绍: Add 默认

ASP.NET MVC基于标注特性的Model验证:DataAnnotationsModelValidator

对于ASP.NET MVC基于标注特性的Model验证,很多人只知道应用在数据类型及其属性上用于定义验证规则和错误消息的ValidationAttribute.通过<ASP.NET MVC以ModelValidator为核心的Model验证体系: ModelValidator>的介绍,我们知道了最终用于进行Model验证的是一个叫做ModelValidator的组件.ValidationAttribute对应的ModelValidator为DataAnnotationsModelValidat