lay-verify的问题

提问 已结
7 1108
Iamten
Iamten 2018-6-15
悬赏:20飞吻
版本:layui 最新 浏览器:Edge
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">寒暑假去向</label>
<div class="layui-input-inline">
<select name="gototype" lay-filter="gototype" lay-verify="required">
<option value="" selected>请选择</option>
<option class="layui-btn" value="回家">回家</option>
<option class="layui-btn" value="留校">留校</option>
</select>
</div>
</div>
</div>

<div id="gotowhere" class="layui-form-item" style="display: none;">
<label class="layui-form-label">家庭住址</label>
<div class="layui-input-block">
<input name="gotowhere" autocomplete="off" lay-verify="types" placeholder="必填:请填写具体家庭住址" class="layui-input" type="text">
</div>
</div>

form.verify({
types : function(value){ //value:表单的值
var a = $("#gototype").val();
if(a==="回家"&&value===""){
return '必填项不能为空';
}else if(a==="留校"&&value===""){
return '必填项不能为空';
}
}
});

为什么这个验证是无效的?[泪]
回帖
  • 南鸢000
    2018-6-15
    @Iamten 隐藏的同时把lay-verify="required"移除
    0 回复
  • 南鸢000
    2018-6-15
    你看看你写的啥,form.verify是用来自定义验证的,lay-verify="required"已经为你写好了,input为空时你只需要点击提交就会触发,好好去看文档吧
    0 回复
  • Iamten
    2018-6-15
    貌似是不用 required 就没法调用form.verify里的检验...
    这机制就会有些问题...
    比如我现在的情况 通过select里的选择value 选择隐藏一些表单 而显示的表单是必填的
    如果全部设成required,则填完显示的表单依旧无法提交,因为隐藏表单的值为空
    我现在唯一想到的办法是 前端不判断 通过后台判断 如果为空则返回“必填项不能为空”
    希望贤心大大能考虑修改这一机制
    0 回复
  • 其实表单验证也是可以根据需要新增或者去除的,比如下拉选择之后隐藏一些节点并且把他们的verify干掉就可以了,还有也不是一定要required才会走验证的额
    0 回复
  • Iamten
    2018-6-18
    @岁月小偷 首先感谢解答!
    然后暂时确实是因为没有required所以没走验证= =!
    选择在隐藏时删除lay-verify这一属性解决了。
    0 回复
  • Iamten
    2018-6-18
    @南鸢000 我没辣么傻啦。不过移除确实解决了问题!谢啦!
    0 回复
  • Iamten
    2018-6-18
    $("#ID").removeAttr("lay-verify");
    0 回复