java非必填字段跳过校验,avalon2表单验证,非必填字段在不填写的时候不能通过验证...
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表单验证,非必填字段在不填写的时候不能通过验证...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql注入技巧原理_MySQL注入技
- 下一篇: 软件外包平台用例图