zoukankan      html  css  js  c++  java
  • MVC验证03-自定义验证规则、禁止输入某些值

    本文继续体验自定义验证规则,需求是禁止输入某些值。本文与前2篇相关,请参考:
    MVC验证01-基础、远程验证  
    MVC验证02-自定义验证规则、邮件验证 

      自定义验证特性继承ValidationAttribute,并实现IClientValidatable接口

    展开

      把自定义属性打到View model的属性上

    展开

    [NoInput("demo",ErrorMessage = "不能使用此名称")],即当输入demo的时候就报错。

      扩展jquery的验证方法jQuery.validator.noinput.js并注册

    jquery的验证扩展方法的逻辑基本上与自定义特性IsValid()方法一致。
    自定义特性rule.ValidationParameters["input"]的键input要传递给$.validator.unobtrusive.adapters.addSingleVal()方法。

    展开

      Register.cshtml视图

    展开

    效果:

    禁止输入某个值

      如果需要禁止多个值,需要重写自定义验证特性

    这时候自定义特性的Input属性类型变成了string[],因为要判断多个值。
    但前台rule.ValidationParameters["input"]存储的应该是string类型,所以保存的时候要把Input数组元素join起来。

    展开

      把自定义属性打到View model的属性上,但构造函数是用逗号分隔的字符串

    展开

    [NoInput("demo,jack",ErrorMessage = "不能使用此名称")],当输入demo或者jack的时候都会报错。

      扩展jquery的验证方法jQuery.validator.noinput1.js并注册

    需要把rule.ValidationParameters["input"]存储的值split成数组,在遍历判断。

    展开

      Register.cshmtl要引用jQuery.validator.noinput1.js

    展开

    效果:

    禁止输入某些值

  • 相关阅读:
    vue:路由实现原理
    webpack自定义loader和自定义插件
    JS常见的算法
    浅析DES、AES、RSA、MD5加密算法及其应用场景
    关于JSON.parse(JSON.stringify(obj))实现深拷贝应该注意的坑
    Canvas和SVG区别
    解决 webpack 打包文件体积过大
    箭头函数与普通函数的区别
    2.Linux基础命令
    1.Ubuntu系统与vmware虚拟机的安装与使用
  • 原文地址:https://www.cnblogs.com/darrenji/p/3580253.html
Copyright © 2011-2022 走看看