avalon2表单验证,非必填字段在不填写的时候不能通过验证

代码

var vm = avalon.define({

$id: "validate1",

aaa : "",

validate: {

onError: function(reasons) {

reasons.forEach(function(reason) {

console.log(reason.getMessage())

})

},

onValidateAll: function(reasons) {

if(reasons.length) {

alert(reasons[0].getMessage())

} else {

alert('全部通过')

}

}

}

})

截图

查看源码 avalon/src/directives/duplex/addValidateField.js 中 validate 方法中

var next = function (a) {

if (field.norequired && value === '') {

a = true

}

......

}

有判断 field.norequired 是否为非必填字段 ,但貌似 norequired 属性从未赋值过

我的解决办法

在源码 avalon/src/directives/duplex/addValidateField.js 改造

代码如下

module.exports = function addField(node, vnode) {

var field = node.__ms_duplex__

var rules = vnode['ms-rules']

if (rules && !field.validator) {

while (node && node.nodeType === 1) {

var validator = node._ms_validator_

if (validator) {

if (rules['required'] === undefined || rules['required'] === false)

field.norequired = true;

field.rules = rules

field.validator = validator

if (avalon.Array.ensure(validator.fields, field)) {

validator.addField(field)

}

break

}

node = node.parentNode

}

}

}

新增了 这么一段 给 norequired 属性赋值 解决了非必填验证的问题

if (rules['required'] === undefined || rules['required'] === false)

field.norequired = true;

但不知道此方法是否是合理?

java非必填字段跳过校验,avalon2表单验证,非必填字段在不填写的时候不能通过验证...相关推荐

  1. Struts2 表单和非表单标签

    学习内容 Struts 2表单标签 Struts 2非表单标签 能力目标 熟练使用Struts 2表单标签开发表单 熟练使用Struts 2非表单标签 本章简介 上一章讲述了ognl和Struts2标 ...

  2. 问卷调查:vue element动态生成表单、表单校验以及表单提交

    有任何疑问和问题欢迎大家提出来,一起学习,相互监督,共同进步! 需求:题型包含:单选题.多选题.文本框.矩阵题型 实现功能的相关技术:vue(router,axios,element-ui) 实现结果 ...

  3. php v9 上传_phpcms v9 表单添加文件上传字段

    phpcms v9 表单添加文件上传字段 1.打开目录 ./phpcms/modules/content/fields/ ;把 文件夹downfile,拷贝到目录./phpcms/modules/fo ...

  4. uniqid php 重复_在php使用隐藏字段和uniqid来实现表单的重复提交

    在php中,最简单,也是做常用的放发来放置表单重复提交的方法就是设置隐藏域的来实现,在php有一个uniqid();函数,他可以生成唯一的标示符,这样我们就可以通过判断这个标示符来判断表单是不是处于重 ...

  5. JavaWeb -- Struts1 使用示例: 表单校验 防表单重复提交 表单数据封装到实体

    1. struts 工作流程图 超链接 2. 入门案例 struts入门案例:1.写一个注册页面,把请求交给 struts处理<form action="${pageContext.r ...

  6. Java+MyEclipse+Tomcat (二)配置Servlet及简单实现表单提交

    在Java EE应用编程中Servlet是基础,JSP是建立在Servlet基础之上的,其他Web框架如Struts.WebWork和Spring MVC都是基于Servlet的.本文主要讲述MyEc ...

  7. php数据库字段设置长度,javascript - 表单字符长度与数据库字段长度

    html的表单length长度是以字符个数计算的,不管是汉字还是字母,但是数据库又是按字节计算的,汉字占2个字母占1个,这样容易造成写入的时候长度超出的问题. 两个问题: 1.有没有好的方法,能够在前 ...

  8. vue element form 自定义校验1(表单校验)

    通过ref属性获得表单对象,调用表单对象的validate函数进行表单的整体校验 <template><!--model绑定整个form对象的的数据--><!--rule ...

  9. html提交成功跳转页面,提交表单后跳转到想要的页面--jQuery form

    表单提交的问题一直困扰着我这个新手,现在也算学习了不少,解决了我现在有的问题 -- 提交了表单之后将数据给到后台并且让前端页面跳转到想要的页面或出现想要的内容. 用到了 jQuery Form Plu ...

最新文章

  1. druid抛出的异常------javax.management.InstanceAlreadyExistsException引发的一系列探索
  2. Caused by: java.lang.ClassNotFoundException: javax.persistence.Entity
  3. DL之Keras:keras保存网络结构、网络拓扑图、网络模型(json、yaml、h5等)注意事项及代码实现
  4. zz STL 优先队列
  5. Mybatis Plus——AutoGenerator配置BaseResultMap(通用查询映射结果)和BaseColumnList(通用查询结果列)自动生成
  6. 够快云库, 加速企业信息化建设
  7. 聊聊推荐系统的高阶特征交叉问题
  8. 中文版开源!这或许是最经典的 Python 编程教材
  9. mysql集群方案,保准看明白!
  10. k8s apollo_AI增强的Apollo 16素材让您以4K登上月球
  11. JAVA后端开发常用的Linux命令总结
  12. ubuntu下使用锐捷校园网
  13. REST Assured 55 - JSON Schema Validation In Rest Assured
  14. 用java做一个简易的五子棋
  15. 【你可能不知道的】 PICkit3 脱机烧写 program to go 模式
  16. 【无标题】外汇符合挖坟啊喝咖啡卡机
  17. 大学计算机python基础_大学计算机python基础课件2015lecture17
  18. python程序员专用壁纸_神级python程序员分享的让小白30分钟快速上手的一张神图,赶快收藏!...
  19. floyd-warshall算法浅理解
  20. 微信公众平台停用服务器配置,1.微信公众号服务器配置启用

热门文章

  1. 04_类与对象_课程动手动脑问题以及课后实验性问题及解答集锦
  2. 解决Eclipse 项目报错:Unbound classpath container
  3. django 403 错误:CSRF token missing or incorrect
  4. 随便聊聊,Linux 中的环境变量
  5. 我想做个MP3,要怎么入手?
  6. Linux shell sed awk
  7. 开机自启动和由一个APK启动另一个APK核心代码
  8. JavaScript——使用对话框
  9. ubuntu c++检测usb口事件变化_拆解报告:美式双USBA口充电插座
  10. iphone mac地址是否随机_iOS8随机MAC地址功能:需要满足前提要求