ValidationSuar表单验证框架-支持ASP.NET MVC ASP.NET WebFroM

介强下ValidationSuar表单验证框架的好用:

1、支持javascript端和后端的双重验证 (前端目前依赖于jquery.validate.js,也可以自已扩展)

2、代码简洁

3、调用方便

4、功能齐全

使用方法:

新建初始化类,将所有需要验证的在该类进行初始化,语法相当简洁并且可以统一管理,写完这个类你的验证就完成了70%

函数介绍:

Add 默认类型(邮件、手机、qq等)

AddRegex 正则验证 在Add无法满足情部下使用

addFunc 使用js函数进行验证 (注意:js函数验证后台需要重新验证,所以能用上两种方法验证的尽量使用上面的,这判段大多数用在 验证 用户名是否存,两次密码不至 无法用正则的情况下)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using SyntacticSugar;

namespace ValidationSuarMVC.Models
{
    public class Validates
    {
        public static void Init()
        {

            //login
            ValidationSugar.Init(PageKeys.LOGIN_KEY,
               ValidationSugar.CreateOptionItem().Set("userName", true/*是否必填*/, "用户名").AddRegex("[a-z,A-Z].*", "用户名必须以字母开头").AddRegex(".{5,15}", "长度为5-15字符").AddFunc("checkUserName", "用户名不存在,输入 admin1 试试").ToOptionItem(),
               ValidationSugar.CreateOptionItem().Set("password", true, "密码").AddRegex("[0-9].*", "用户名必须以数字开头").AddRegex(".{5,15}", "长度为5-15字符").ToOptionItem()
               );

            //register
            ValidationSugar.Init(PageKeys.REGISTER_KEY,
               ValidationSugar.CreateOptionItem().Set("userName", true, "用户名").AddRegex("[a-z,A-Z].*", "用户名必须以字母开头").AddRegex(".{5,15}", "长度为5-15字符").AddFunc("checkUserName", "用户名已存在!").ToOptionItem(),
               ValidationSugar.CreateOptionItem().Set("password", true, "密码").AddRegex(".{5,15}", "长度为5-15字符").ToOptionItem(),
               ValidationSugar.CreateOptionItem().Set("password2", true, "密码").AddRegex(".{5,15}", "长度为5-15字符").AddFunc("confirmPassword", "密码不一致").ToOptionItem(),
                ValidationSugar.CreateOptionItem().Set("sex", true, "性别").AddRegex("0|1", "值不正确").ToOptionItem(),
               ValidationSugar.CreateOptionItem().Set("email", true, "邮箱").Add(ValidationSugar.OptionItemType.Mail, "邮箱格式不正确").ToOptionItem(),
               ValidationSugar.CreateOptionItem().Set("mobile", false, "手机").Add(ValidationSugar.OptionItemType.Mobile, "手机格式不正确").ToOptionItem(),
               ValidationSugar.CreateOptionItem().Set("qq", false, "qq").AddRegex(@"\d{4,15}", "qq号码格式不正确").ToOptionItem(),
               ValidationSugar.CreateOptionItem().Set("education", true, "学历", true/*checkbox 多选模式*/).AddRegex(@"\d{1,15}", "值不正确").ToOptionItem()
               );
        }
    }
}

  

Global.cs注册我们就可以用了

验证大多情况下分两种 1、 submit提交 2、js ajax提交

一、submit提交的写法

Register 一行代码搞定、获取绑定信息交给viewbag

PostRegister 也是一行完成后台验证

 

view

1、引用js并写好初始化函数

2、将@Html.Raw(ViewBag.validationBind) 放在页面最下方

@{
    ViewBag.Title = "Register";
    Layout = null;
}
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script src="/Content/jquery-validation-1.13.1/lib/jquery-1.9.1.js" type="text/javascript"></script>
    <script src="/Content/jquery-validation-1.13.1/dist/jquery.validate.js" type="text/javascript"></script>
    <script src="/Content/validation.sugar.js" type="text/javascript"></script>
    <script src="/Content/jquery-validation-1.13.1/lib/jquery.form.js" type="text/javascript"></script>
    <link href="/Content/jquery-validation-1.13.1/validation.sugar.css" rel="stylesheet"
        type="text/css" />
    <script type="text/javascript">
        $(function () {
            var factory = new validateFactory($("form"), "<img src=\"/Content/jquery-validation-1.13.1/error.png\" />");
            factory.init();

        });

        //用户名是否已存在
        function checkUserName() {
            //实际开发换成: ajax  async:false
            var userName = $("[name=userName]").val();
            if (userName == "admin1" || userName == "admin2") {
                return false;
            }
            return true;
        }

        //验证密码是否一致
        function confirmPassword() {
            return $("[name=password]").val() == $("[name=password2]").val();
        }

    </script>
    <style>
        td
        {
            height: 30px;
            padding: 5px;
        }
    </style>
</head>
<body>
    <h3>
        基于jquery.validate的前后台双验证</h3>
    <form method="post" class="form" id="form1" action="/home/postRegister">
    <table>
        <tr>
            <td>
                name
            </td>
            <td>
                <input type="text" name="userName">
            </td>
        </tr>
        <tr>
            <td>
                password
            </td>
            <td>
                <input type="password" name="password" />
            </td>
        </tr>
        <tr>
            <td>
                confirm password
            </td>
            <td>
                <input type="password" name="password2" />
            </td>
        </tr>
        <tr>
            <td>
                sex
            </td>
            <td>
                  <input type="radio" value="1" name="sex" />
                    男
                    <input type="radio" value="0" name="sex" />
                    女
            </td>
        </tr>
        <tr>
            <td>
                email
            </td>
            <td>
                <input type="text" name="email" />
            </td>
        </tr>
        <tr>
            <td>
                mobile
            </td>
            <td>
                <input type="text" name="mobile" />
            </td>
        </tr>
        <tr>
            <td>
                qq
            </td>
            <td>
                <input type="text" name="qq" />
            </td>
        </tr>
        <tr>
            <td>
                education
            </td>
            <td>
                <p>
                    <input type="checkbox" value="1" name="education" />
                    本科
                    <input type="checkbox" value="2" name="education" />
                    幼儿园
                    <input type="checkbox" value="3" name="education" />
                    小学
                </p>
            </td>
        </tr>
    </table>
    <button type="submit">
        submit提交(禁掉浏览器JS进行测试)</button>
    @Html.Raw(ViewBag.validationBind)
    </form>
</body>
</html>

完成

表单难看了点,功能齐全,基于validate.js对css支持还是不错的可以。自已美化  

二、ajax写法

把submit改成button,其它都一样就多了这么一点代码

DEMO下载:

http://git.oschina.net/sunkaixuan/ValidationSuarMVC

时间: 2024-08-22 00:42:14

ValidationSuar表单验证框架-支持ASP.NET MVC ASP.NET WebFroM的相关文章

[JavaWeb基础] 015.Struts2 表单验证框架

在web开发的过程中,我们经常要用到一些填写表单的操作,我们一般都要在提交表单信息的时候对表单的内容进行验证,struts2给我们提供了简单的实现接口,让我们可以很容易的对表单进行验证.下面讲解下最传统的方法配置表单验证框架,还有更简单明了的就是利用注解,这里就不解释了. 1.首先我们要在要进行配置的Action的同级目录下,新建一个.xml文件,命名格式为:ActionClassName-validation.xml. 例如我的Action类名为:RegisterAction   那么xml名

简单的js表单验证框架

/** * 通常在我们的HTML页面表单中有大量的数据验证工作, * 免不了要写很多验证表单的js代码,这是一项非常繁琐 * 枯燥的工作.很多程序员也会经常遗漏这项工作.当然 * 一些JavaEE框架中有一些比较好的验证框架提供给我们 * 使用,但是也是需要很多繁琐的配置,页面查看起来也 * 不是很方便.一般程序员使用的也不多.所以写了这一 * 段JavaScript代码提供给大家使用.算是一个简单的 * JavaScript验证框架吧.使用起来很简单,配合下面几 * 种标签使用,能实现大多数表

jquery.validate.js【简单实用的表单验证框架】

在线演示1 本地下载 原文链接:http://www.gbtags.com/gb/share/5749.htm 最近在做用户登录.注册.以及用户中心...然后之前在慕课网学的jquery.validate用得着地方了,根据自己需求进行了细节修改,重要是样式方面吧. 第一次发表这些,说得不好不要介意,开始吧.首先: $("#form").validate({ //在这里面编辑 }); 验证的时候常常需要调试,该框架内置了一个方法,如下: debug:true, //调试模式(并不会提交)

介绍jquery.validate.js简单实用的表单验证框架

在线演示1 本地下载 最近在做用户登录.注册.以及用户中心...然后之前在慕课网学的jquery.validate用得着地方了,根据自己需求进行了细节修改,重要是样式方面吧. 第一次发表这些,说得不好不要介意,开始吧.首先: $("#form").validate({ //在这里面编辑 }); 验证的时候常常需要调试,该框架内置了一个方法,如下: debug:true, //调试模式(并不会提交) 来个实例,HTML: <div class="form-group&qu

jquery.validate.js【简单实用的表单验证框架】【进阶版】

这个是这个插件的官网和我找到的一个中文博客.(虽然插件的名字叫做jquery.validte.js,但其实,这个插件的名字叫jquery validation). 基础的用法可以去看冷子欲的文章或者上面的博客,我这里就不详细介绍了. 首先最重要的一点,所有要验证的域都要在form里,同时这些域都要有name属性. 详细内容请见原文链接:http://www.gbtags.com/gb/share/5765.htm 1. 默认validate参数的初始化: 这个插件如果要用,肯定很多页面都会用到,

atittit.表单验证的实现方式以及原理本质以及选型以及自定义兼容easyui dsl规则的表单验证

atittit.表单验证的实现方式以及原理本质以及选型以及自定义兼容easyui dsl规则的表单验证 1. 需求,表单验证需要弹框式,但目前easyui ms绑定死了tooltip式样 1 2. 表单验证表现形式 1 2.1. 弹框 1 2.2. 浮动tooltip,推荐这个 1 3. 表单验证的实现原理 1 3.1. 定义reg 2 3.2. 解释 2 3.3. 调用提示... 2 4. 表单验证框架选型easyui>ligerui 2 4.1. ligerui的表单验证选型... 2 4.

JQuery 表单验证--jquery validation

jquery validation,表单验证控件 官方地址 :http://jqueryvalidation.org/ jquery表单验证 默认值校验规则 jquery表单验证 默认的提示 1 <html> 2 <head> 3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 4 <title>jQuery validatio

atittit.表单验证性质的原则和实施,以及选择和定义自己的兼容easyui dsl窗体身份验证规则

atittit.表单验证性质的原则和实施,以及选择和定义自己的兼容easyui dsl规则的表单验证 1. 需求,表单验证须要弹框式,但眼下easyui ms绑定死了tooltip式样 1 2. 表单验证表现形式 1 2.1. 弹框 1 2.2. 浮动tooltip.推荐这个 1 3. 表单验证的实现原理 1 3.1. 定义reg 2 3.2. 解释 2 3.3. 调用提示. .. 2 4. 表单验证框架选型easyui>ligerui 2 4.1. ligerui的表单验证选型. .. 2 4

一个表单验证

<!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> <meta http-equiv="Content-