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

    展开

    效果:

    禁止输入某些值

  • 相关阅读:
    python之《set》
    python之 《zip,lambda, map》
    python之 socketserver模块的使用
    iOS FMDB小试了一下
    人生要自强不息-路遇瞎子感悟
    iOS Node Conflict svn冲突
    iOS 隐藏Status Bar
    iOS NSURLSession 封装下载类
    iOS NSFileManager
    iOS prototype Cells
  • 原文地址:https://www.cnblogs.com/darrenji/p/3580253.html
Copyright © 2011-2022 走看看