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

    展开

    效果:

    禁止输入某些值

  • 相关阅读:
    停下来,等等灵魂(二)
    停下来,等等灵魂(一)
    swoole流程图
    使用 Spring Cloud Sleuth、Elastic Stack 和 Zipkin 做微服务监控
    Portainer实战
    Docker 容器日志分析
    docker容器日志查看
    java(集合框架)(转)
    js中const,var,let区别与用法(转)
    【MySQL】Mac通过brew安装的MySQL重启方法
  • 原文地址:https://www.cnblogs.com/darrenji/p/3580253.html
Copyright © 2011-2022 走看看