layui点击按钮页面会自动刷新的问题

11 篇文章 0 订阅

问题:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css">
</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”,但是运行后没有弹出信息,而是页面刷新了。

原因:

button,input type=button按钮在IE和w3c,firefox浏览器区别:

  1. 当在IE浏览器下面时,button标签按钮,input标签type属性为button的按钮是一样的功能,不会对表单进行任何操作。
  2. 但是在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 的 `form` 模块和 `lay-submit` 属性实现点击按钮跳转页面的功能。具体实现步骤如下: 1. 在 HTML 页面中引入 layui 的相关文件: ```html <link rel="stylesheet" href="//cdn.bootcss.com/layui/2.5.6/css/layui.min.css"> <script src="//cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script> <script src="//cdn.bootcss.com/layui/2.5.6/layui.min.js"></script> ``` 2. 在页面中添加一个表单,包含一个按钮和一个隐藏的输入框: ```html <form class="layui-form" action="target.html" method="get"> <button class="layui-btn" lay-submit lay-filter="formDemo">跳转页面</button> <input type="hidden" name="param" value="value"> </form> ``` 其中,`action` 属性指定了跳转的目标页面,`method` 属性指定了请求方式为 `get`,`lay-submit` 和 `lay-filter` 属性指定了按钮的提交事件和表单的筛选器名称。 3. 在 JavaScript 中初始化 layui 的 `form` 模块,并监听表单提交事件: ```javascript layui.use('form', function(){ var form = layui.form; // 监听表单提交事件 form.on('submit(formDemo)', function(data){ // 获取输入框的值 var param = $('input[name="param"]').val(); // 将参数拼接到目标页面的地址中 var targetUrl = data.form.action + '?param=' + param; // 跳转到目标页面 location.href = targetUrl; // 阻止表单的默认提交行为 return false; }); }); ``` 其中,`form.on('submit(formDemo)', function(data){})` 监听了表单提交事件,`data.form` 表示当前表单的 DOM 对象,`$('input[name="param"]').val()` 获取了隐藏输入框的值,`location.href` 实现了页面的跳转,并且通过 `return false` 阻止了表单的默认提交行为。 这样,当用户点击按钮时,页面根据输入框的值跳转到目标页面
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值