为了方便,我们一般使用layer.close(layer.index);关闭最后加载出来的弹窗。但是如果这个弹窗的内容是一个表单,并且进行了表单验证,当验证失败时,layui会给出一个提示框,提示验证失败,
类似于这样:

这样的提示框也是会增加layer.index的值的。所以有了提示之后,layer.close(layer.index)就不能关闭我们的弹窗了,因为layer.index已经变了,不指向我们的弹窗。
我能想到解决方法就是加载弹窗后就记录下弹窗的index
如 var currentIndex = layer.index;
关闭弹窗时就使用layer.close(currentIndex);
另外layui的异常提示层模式(lay-verType)不管是哪个方式,都会增加layer.index的值
在使用layer弹窗并结合layui进行表单验证时,如果验证失败显示提示,由于提示层也会改变layer.index,导致原本的layer.close(layer.index)无法正确关闭弹窗。解决方法是记录弹窗打开时的index值,然后用此值关闭弹窗,例如varcurrentIndex=layer.index;layer.close(currentIndex)。
1517

被折叠的 条评论
为什么被折叠?



