java非必填字段跳过校验,avalon2表单验证,非必填字段在不填写的时候不能通过验证...
avalon2表單驗(yàn)證,非必填字段在不填寫(xiě)的時(shí)候不能通過(guò)驗(yàn)證
代碼
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('全部通過(guò)')
}
}
}
})
截圖
查看源碼 avalon/src/directives/duplex/addValidateField.js 中 validate 方法中
var next = function (a) {
if (field.norequired && value === '') {
a = true
}
......
}
有判斷 field.norequired 是否為非必填字段 ,但貌似 norequired 屬性從未賦值過(guò)
我的解決辦法
在源碼 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 屬性賦值 解決了非必填驗(yàn)證的問(wèn)題
if (rules['required'] === undefined || rules['required'] === false)
field.norequired = true;
但不知道此方法是否是合理?
總結(jié)
以上是生活随笔為你收集整理的java非必填字段跳过校验,avalon2表单验证,非必填字段在不填写的时候不能通过验证...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mysql注入技巧原理_MySQL注入技
- 下一篇: 软件外包平台用例图