表单验证问题,在没有设置required的情况下也会自己校验

提问 未结 15 260
kx88
kx88 7天前
悬赏:20飞吻
版本:layui layui-v2.5.4 浏览器:
如果表单某一项只设置 lay-verify="email" ,但我没有输入任何字符,提交表单时,总是会提示邮箱格式不正确。
我这个不是必填项,没有设置required,如果为空字符,应该自动忽略吧?
不知道是我使用问题,还是什么原因?
回帖
  • Hide
    7天前
    email是默认类型,框架自带,你可以自己写,
    比如 lay-verify="myemail"

    form.verify({
    myemail: function(value, item){
    if(value&&!/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/g.test(value)){return "邮箱格式不正确";}
    }
    })

    0 回复
  • kx88
    7天前
    谢谢,这样是能解决问题,但是系统既然自带了,直接使用不好吗
    0 回复
  • kx88
    7天前
    那这样系统自带的校验都必须配合required一起使用,比如我只要校验number,也要自己重新写一个一样的,觉得好麻烦
    0 回复
  • Hide
    7天前
    我觉得他这样的设计没什么不合理,你既然设置了 它的类型为 email,你的值为空,本来就不满足条件,它并不知道你为空的时候不去验证,你可以直接修改源码,加一个 emailOrEmpty,其他同理,这样修改完了就一劳永逸,下次如果可空的就选择 emailOrEmpty
    0 回复
  • kx88
    7天前
    那按照你这样说的,required必填项没有任何意义。
    0 回复
  • Hide
    7天前


    源码地方加个这个,以后允许空就 lay-verify="emailOrNull",不就解决了吗,动动手指头的事情,几秒解决
    0 回复
  • Hide
    7天前
    @kx88 require仅仅是验证非空的没什么不对,你不写的话它就不去验证这项,你不能站在自己的角度,假如你是架构师,你会怎么设计?让我写,我还是会写这样的,完全没问题。
    0 回复
  • kx88
    7天前
    好的。谢谢了
    0 回复
  • kx88
    7天前
    我已经改成了只有设置require必填,才进行其他规则效验。
    0 回复
  • 0 回复