本文介绍如何通过 navigator.clipboard.writetext() 原生 api,将多个表单输入框的数值无缝拼接(无空格、无换行)后一键复制到剪贴板,无需依赖 clipboard.js 或 jquery。
在实际开发中,为多输入表单添加“一键复制”功能时,若直接使用 data-clipboard-target 指向
解决的关键在于绕过 HTML 文本提取逻辑,主动采集并清洗输入值。现代浏览器已普遍支持 navigator.clipboard.writeText(),它接受任意字符串,因此我们可完全自主控制拼接逻辑:
首先,将 data-clipboard-target 的值从 #tkt_1(整个表单)改为 #tkt_1 .circle input(精准定位每个 元素),确保只读取输入框的 value 属性:
copy
然后,使用以下轻量脚本实现无干扰拼接:
立即学习“Java免费学习笔记(深入)”;
document.querySelectorAll('.btn_copy').forEach(button => { button.addEventListener('click', () => { const selector = button.getAttribute('data-clipboard-target'); const inputs = document.querySelectorAll(selector); // 提取每个 input 的 value,并过滤空值,再拼接为纯字符串 const textToCopy = Array.from(inputs) .map(input => input.value.trim()) // 清除首尾空格(防用户误输) .filter(value => value !== '') // 跳过空输入框 .join(''); // 无分隔符连接 → "123456" navigator.clipboard.writeText(textToCopy) .then(() => console.log('Copied:', textToCopy)) .catch(err => console.error('Copy failed:', err)); }); });
.map(input => String(input.value).padStart(2, '0'))
.map(input => input.value.replace(/D/g, ''))
此方案简洁、可靠、无第三方依赖,且完全掌控输出格式——无论是去除空格、合并数字,还是添加分隔符(如 .join(‘-‘)),均可灵活调整,是现代 Web 表单复制场景的最佳实践。
Composer怎么设置不更新锁文件 lock文件保持不变技巧【方法】
Python 中的条件嵌套:正确缩进实现多分支游戏逻辑