解决layui中button按钮点击导致页面刷新的问题

作者:窗边听雨

时间:2026-10-23

浏览:388

本文分析layui框架中点击按钮导致页面自动刷新的原因,主要涉及HTML标准中button与input type=button在不同浏览器下的行为差异。通过提供两种解决方案:将button替换为input,或显式指定button的type属性为button,有效阻止表单意外提交,确保点击事件正常触发而不刷新页面。

文章目录

问题现象与原因分析

问题描述:


<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
 <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" rel="external nofollow" >
</head>
<body>
<form class="layui-form">
 <div class="layui-form-item">
 <label class="layui-form-label">输入框</label>
 <div class="layui-input-inline">
  <input type="text" name="" placeholder="请输入" autocomplete="off" class="layui-input">
 </div>
 </div>
 <div class="layui-form-item">
 <div class="layui-input-block">
  <button class="layui-btn test" >test</button>
 </div>
 </div>
</form>
 
<script src="../../layuiadmin/layui/layui.js"></script>
<script>
 layui.use(['laytpl','jquery','layer','form'],function () {
 var laytpl = layui.laytpl,
  layer = layui.layer,
  form = layui.form,
  $ = layui.$;
 
 $('.test').click(function () {
  layer.msg("test");
 });
 });
</script>
</body>
</html>

问题现象与原因分析

在点击名为test的按钮后,预期效果是弹出提示信息“test”,但实际运行结果并未弹出该信息,反而触发了页面的自动刷新。

原因分析:

在IE浏览器与符合W3C标准的浏览器(如Firefox)中,button标签与input标签中type属性为button的按钮存在行为差异:

在IE浏览器环境下,使用button标签或input标签且type属性设为button时,两者的功能一致,均不会对表单执行提交操作。

然而,在遵循W3C标准的浏览器(例如Firefox)中,button标签默认行为会提交表单,而input标签且type属性为button则不会执行任何表单操作。

解决方案与代码示例

解决方案:

方法一:将代码中的button标签替换为input标签。


<input class="layui-btn test" >test</input>

方法二:


<button type="button" class="layui-btn test" >test</button>

以上关于layui点击按钮导致页面自动刷新的解决方案即为全部内容,希望能为读者提供参考,并感谢大家的支持。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章