原生表格文本过长展示问题,参考layui长文本,点击出现文本域

需要引入layui文件

效果

html代码, 记得class="layui-table"; 这要有

复制代码
    <form class="js-ajax-form" method="post" autocomplete="off">
      

        <table class="layui-table">
            <thead>
            <tr>
                <th>退烧药</th>
            </tr>
            </thead>
            <tbody>
            <foreach name="list" item="vo">
                <tr>
                    
                    <td>
                        <if condition="!empty($vo.drug_names)">
                            <if condition="mb_strlen($vo.drug_names, 'utf-8') gt 10">
                                <span class="layui-inline age-text"
                                      onclick="toggleAgeTextarea(this, '{$vo.drug_names}')">
                                    {$vo.drug_names|mb_substr=0,10}...
                                </span>
                                <textarea class="layui-textarea age-textarea"
                                          style="display: none; width: 200px; height: 40px;"
                                          readonly
                                          onblur="toggleAgeTextarea(this)"></textarea>
                                <else/>
                                <span>{$vo.drug_names}</span>
                            </if>
                        </if>
                    </td>
                     
                </tr>
            </foreach>
            </tbody>
        </table>
    </form>

js 可以弄公共部分每个页面都引入一下

复制代码
    <!-- 显示隐藏长文本框 -->
    <script>
        // 切换显示文本与文本框
        window.toggleAgeTextarea = function (element, currentValue) {
            var textarea = element.nextElementSibling;

            if (textarea.style.display === 'none') {
                // 显示文本框
                element.style.display = 'none';
                textarea.value = currentValue;
                textarea.style.display = 'block';

                // 定位文本框在点击位置
                var rect = element.getBoundingClientRect();
                textarea.style.position = 'absolute';
                textarea.style.left = rect.left + 'px';
                textarea.style.top = rect.top + 'px';
                textarea.style.zIndex = '1000';
                textarea.style.resize = 'both';
                textarea.style.overflow = 'auto';
                textarea.style.boxShadow = '0 2px 6px rgba(0,0,0,0.1)';
                textarea.style.minHeight = '70px';
                textarea.style.minWidth = '200px';

                textarea.focus();
            } else {
                // 隐藏文本框,显示文本
                var updatedValue = textarea.value;
                textarea.style.display = 'none';
                element.innerText = updatedValue.length > 10 ? updatedValue.substr(0, 10) + "..." : updatedValue;
                element.style.display = 'inline';
            }
        };

        // 监听文本框失去焦点
        document.addEventListener('blur', function (event) {
            var target = event.target;
            if (target.classList.contains('age-textarea')) {
                var textarea = target;
                var spanElement = textarea.previousElementSibling;

                // 隐藏文本框并更新显示文本
                textarea.style.display = 'none';
                var updatedValue = textarea.value;
                spanElement.innerText = updatedValue.length > 10 ? updatedValue.substr(0, 10) + "..." : updatedValue;
                spanElement.style.display = 'inline';
            }
        }, true);
    </script>
相关推荐
用户059540174462 小时前
把AI对话记忆存储测试从手工改成Playwright+pytest,覆盖率从20%提到96%,回归时间缩短90%
前端·css
kyriewen2 小时前
别再这样写TypeScript了——Code Review中最常见的8个反模式
前端·javascript·typescript
名字还没想好☜2 小时前
Next.js ‘use client‘ 到底加在哪:Server/Client Components 边界与常见报错
开发语言·前端·javascript·react·next.js
午安~婉3 小时前
GitHub Token/ GitHub Stats统计显示图异常
前端·github·vercel·github token
码云之上3 小时前
AI Agent 工程化总览篇:从 Prompt 到 Harness
前端·人工智能
2501_926978333 小时前
以说明书 DNA 为模板——完整 AGI 的结构图景
前端·人工智能·经验分享·笔记·ai写作
IT_陈寒3 小时前
Vite静态资源引用这个坑我踩得有点疼
前端·人工智能·后端
程序员黑豆4 小时前
鸿蒙应用开发:AttributeModifier 使用教程
前端·harmonyos
codeniu4 小时前
TRAE Work 实战 | 从"有个想法"到线上Demo,我全程只靠对话就完成了
前端·trae
妙码生花4 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(五十):增加管理员角色组管理
前端·后端·ai编程