2.7K Star 16K Fork 3.6K

GVPLayui / layui

 / 详情

关于 form 的内置验证规则,能否当非空值才验证,或者加了 required 时才验证非空

已完成
创建于  
2021-07-26 10:23

HTML元素属性lay-verify=“number”,没有必填校验lay-verify="required"的时候,用户没有输入内容,内容为空字符串时,提交校验的时候,提示只能填写数字,逻辑关系应该是非空且数字,即用户填写了才校验,而不是非空或者数字,附上图片一份输入图片说明

评论 (5)

手机用户2007112415 创建了任务
手机用户2007112415 关联仓库设置为贤心/layui
展开全部操作日志

应该不会改了吧,好像原本开始是这样的,后面改正确了,又不兼容以前的,又改回来了,将错就错了。
以前在社区看到的。
现在最好还是自定义验证吧。

说到点子上了,这一块为了确保向下兼容,确实只能按照现有的规则「将错就错」,属于历史遗留的问题。
因此,通过 form.verify() 方法来重置内置的验证规则,可以满足该需求。如:

form.verify({
  number: function(value){
    if(value && isNaN(value)) return '只能填写数字';
  }
});

如此,当我们对元素设置 lay-verify="number" 时,就可以实现「只有当非空值才会进入验证」的需求。
其他内置验证也是同理。

@手机用户2007112415 @偷懒的猫 @tianxia9292

同问,逻辑确实不大对啊。应该是有 required 时才对空值进行验证吧。

我也会啊,好像没修复

贤心 任务状态待办的 修改为已完成
贤心 修改了标题
贤心 修改了标题
贤心 修改了标题

没错,因为这个问题每次升级都要去改源码重新编译成我需要的验证方式。以兼容的理由容错,恐怕不是很妥当吧?

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(6)
92529 sentsin 1578917144 5183 dbt2012 1578914314
JavaScript
1
https://gitee.com/layui/layui.git
git@gitee.com:layui/layui.git
layui
layui
layui

搜索帮助

53164aa7 5694891 3bd8fe86 5694891