解决layui中button按钮点击导致页面刷新的问题
本文分析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点击按钮导致页面自动刷新的解决方案即为全部内容,希望能为读者提供参考,并感谢大家的支持。
anime.js 快速入门:怎么引入库并编写第一个 DOM 动画
2026-11-05 14:22:43
在线JS解密后变量名仍乱码?结合浏览器DevTools调试还原
2026-11-04 20:26:01
怎么在浏览器中运行JavaScript代码并查看输出结果
2026-11-04 09:07:33
JS 获取屏幕分辨率:window.screen.width 与 height 用法
2026-11-04 08:52:48
为什么推荐用DOMContentLoaded代替window.onload初始化JS
2026-11-04 08:42:33
