layui form表单自定义sm格式

本文详细介绍如何创建并应用layui的小尺寸表单样式,包括修改输入框、选择框及文本区域的宽度、高度等属性,以及如何正确引入自定义的layform_sm.css样式文件。

1. 新建以下sm样式,保存为layform_sm.css文件名,然后放到layuiadmin/layui/css/文件夹下面。

 

.layui-input-sm,.layui-select-sm,.layui-textarea-sm
{
    width:100px;
    height:25px;
    line-height:1;
    border-width:1px;
    border-style:solid;
    background-color:#fff;
    border-radius:2px;
    border-color:#e6e6e6;
    padding-left: 5px;
}
.layui-form-item-sm .layui-input-inline-sm {
    float: left;
    width: 100px;
    margin-right: 5px;
}
.layui-input-inline-sm {
    display: inline-block;
    vertical-align: middle;
    position: relative;
}
.layui-form-label-sm {
    float: left;
    display: block;
    padding: 0px 8px;
    width: 60px;
    font-weight: 400;
    /* line-height: 24px; */
    text-align: right;
    position: relative;
}
.layui-card-header-sm {
    position: relative;
    /* height: 42px; */
    line-height: 28px;
    color: rgb(51, 51, 51);
    font-size: 14px;
    padding: 10px 15px;
    border-bottom: 1px solid rgb(246, 246, 246);
    border-radius: 2px 2px 0px 0px;
}

.layui-select-title > input {
        width:100px;
        height:25px;
        line-height:1;
        border-width:1px;
        border-style:solid;
        background-color:#fff;
        border-radius:2px;
        border-color:#e6e6e6;
        padding-left: 5px;
}
.layui-pop-search {
   cursor: pointer
}

2. 使用方法:将小表单样式放后面引入。

<link type="text/css" href="${ctx}/resources/layuiadmin/layui/css/layui.css" media="all" rel="Stylesheet" />
<link type="text/css" href="${ctx}/resources/layuiadmin/layui/css/layform_sm.css" media="all" rel="Stylesheet" />

 

<think>我们正在讨论layui table中添加自定义按钮并进行监听的方法。 根据引用[1]和引用[2]的内容,我们可以总结出以下关键点: 1. 自定义按钮需要设置`lay-event`属性,这个属性值将作为事件的标识。 2. 在工具栏中添加自定义按钮,可以通过配置table的`toolbar`选项来实现,其中`toolbar`可以是选择器或DOM元素,也可以是模板字符串。 3. 监听自定义按钮的事件,使用`table.on('toolbar(tableFilter)', function(obj){}`,其中`obj.event`就是按钮上设置的`lay-event`值。 具体步骤如下: **步骤1:在table的工具栏配置中添加自定义按钮** 在初始化table时,配置`toolbar`属性,可以是一个带有自定义按钮的HTML字符串。 例如: ```javascript table.render({ elem: '#demo', toolbar: '#toolbarDemo', // 指向一个包含自定义按钮的模板,或者直接是HTML字符串 // ...其他配置 }); ``` 然后在HTML中定义模板: ```html <script type="text/html" id="toolbarDemo"> <div class="layui-btn-container"> <button class="layui-btn layui-btn-sm" lay-event="add">添加</button> <button class="layui-btn layui-btn-sm" lay-event="delete">删除</button> <button class="layui-btn layui-btn-sm" lay-event="update">更新</button> </div> </script> ``` 或者直接使用字符串(如果按钮固定且简单): ```javascript table.render({ elem: '#demo', toolbar: '<div class="layui-btn-container"><button class="layui-btn layui-btn-sm" lay-event="add">添加</button></div>', // ...其他配置 }); ``` **步骤2:监听工具栏事件** 使用`table.on('toolbar(tableFilter)', function(obj){}`来监听工具栏事件,其中`tableFilter`是table的`lay-filter`属性值。 例如: ```javascript table.on('toolbar(test)', function(obj){ var event = obj.event; // 得到lay-event的值 switch(obj.event){ case 'add': layer.msg('添加操作'); break; case 'delete': layer.msg('删除操作'); break; case 'update': layer.msg('更新操作'); break; }; }); ``` 这里,`test`就是table的`lay-filter`属性值,例如: ```html <table class="layui-table" lay-filter="test"> ... </table> ``` 注意:如果table配置中已经通过`elem`绑定了元素,那么`lay-filter`也可以不写,但是监听事件时需要使用与`elem`相同的选择器标识。不过通常我们使用`lay-filter`来标识。 引用[2]中还提到了一种通过`active`对象来定义事件的方法,但那是用于模块化开发中的事件绑定,与工具栏按钮监听不同。我们这里主要关注工具栏按钮的监听。 因此,实现自定义按钮并监听的步骤就是以上两步。 如果需要更复杂的操作,比如像引用[1]中提到的弹出选择项,那么可以在监听事件中编写相应的弹出层代码。 例如,在监听到某个事件时,弹出层: ```javascript table.on('toolbar(test)', function(obj){ if(obj.event === 'customBtn'){ layer.open({ type: 1, content: '自定义内容', area: ['300px', '150px'] }); } }); ``` 总结:关键点在于自定义按钮的`lay-event`属性设置,以及通过`table.on('toolbar(filter)', callback)`来监听。 下面提供一个完整的示例: </think>### Layui Table 添加自定义按钮并监听的实现方法 在 Layui Table 工具栏中添加自定义按钮并实现事件监听,主要通过以下步骤完成: #### 1. **添加自定义按钮** 在表格初始化时,通过 `toolbar` 属性添加自定义按钮模板,并为按钮设置 `lay-event` 属性作为事件标识: ```javascript table.render({ elem: '#yourTableId', toolbar: '#customToolbar', // 指向自定义工具栏模板 cols: [[ /* 列配置 */ ]], // ...其他配置 }); ``` 对应的 HTML 模板(需放在页面中): ```html <script type="text/html" id="customToolbar"> <div class="layui-btn-container"> <button class="layui-btn layui-btn-sm" lay-event="customAdd">新增</button> <button class="layui-btn layui-btn-sm layui-btn-danger" lay-event="customDelete">删除</button> </div> </script> ``` #### 2. **监听按钮事件** 通过 `table.on('toolbar(filter)')` 监听工具栏事件,根据 `lay-event` 值执行操作: ```javascript table.on('toolbar(yourTableFilter)', function(obj){ switch(obj.event){ case 'customAdd': layer.msg('点击了新增按钮'); // 自定义新增逻辑 break; case 'customDelete': layer.confirm('确认删除?', function(index){ // 自定义删除逻辑 layer.close(index); }); break; } }); ``` > **关键点**: > - `yourTableFilter` 需与表格的 `lay-filter` 属性值一致 > - `obj.event` 获取按钮的 `lay-event` 标识[^1] #### 3. **复杂操作示例(二级菜单)** 如需实现类似导出功能的二级菜单(如引用[1]所述): ```javascript // 按钮模板 toolbar: `<button class="layui-btn" lay-event="more">更多操作</button>` // 事件监听 table.on('toolbar(tableFilter)', function(obj){ if(obj.event === 'more'){ layer.open({ type: 1, content: ` <ul class="layui-menu"> <li lay-event="export"><i class="layui-icon"></i>导出Excel</li> <li lay-event="print"><i class="layui-icon"></i>打印</li> </ul>`, success: function(layero, index){ // 监听二级菜单点击 layero.find('.layui-menu li').on('click', function(){ var event = $(this).attr('lay-event'); if(event === 'export'){ /* 导出逻辑 */ } layer.close(index); }); } }); } }); ``` #### 4. **自定义弹出层(引用[2]实现)** 通过 `admin.popupRight` 实现右侧弹出层: ```javascript var active = { openPopup: function(){ layui.admin.popupRight({ id: 'customPopup', area: '400px', success: function(layero){ // 渲染弹出层内容 layui.view(this.id).render('your/customView').done(function(){ layui.form.render(); }); } }); } } // 绑定到按钮 table.on('toolbar(tableFilter)', function(obj){ if(obj.event === 'openPopup') active.openPopup(); }); ``` ### ⚠️ 注意事项 1. 确保 `toolbar` 指向的模板已存在于 DOM 中 2. 表格的 `lay-filter` 属性值必须与监听器中的标识一致 3. 复杂操作建议参考官方模块化设计(如引用[2]的 `active` 对象模式) 4. 使用 `layui.form.render()` 渲染动态加载的表单元素 通过以上步骤,即可实现自定义按钮的添加与事件响应。实际开发中可根据需求组合使用这些方法,例如在按钮事件中触发 API 请求、打开表单或执行批量操作。 --- ### 相关问题 1. 如何在 Layui Table 中实现自定义按钮的权限控制? 2. Layui Table 工具栏按钮如何绑定动态生成的数据? 3. 自定义按钮点击后如何刷新表格数据? 4. 如何实现 Layui Table 行内自定义操作按钮? [^1]: 关键点是通过 `lay-event` 标识事件,在监听器中匹配操作类型 [^2]: 使用 `admin.popupRight` 实现自定义弹出层,需配合视图渲染机制
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值