html怎么实现表单相同复制,Clipboard中success重复提示处理,顺带记录表格复制

本文介绍了一个在处理表格复制时遇到的Clipboard.js重复提示问题,以及如何通过销毁多余定义并使用setTimeout来确保正确复制表格内容的方法。同时,强调了在单页应用中区分多个表格的重要性,并提供了详细的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

重复提示处理

原因: 因为多次定义了Clipboard,所以会重复提示

需要销毁多余的定义,利用 clipboard.destroy() 进行清除

触发按钮

data-clipboard-action="copy"

:id="`copyBtn${tableKey}`"

:data-clipboard-target="`#copyTextarea${tableKey}`"

>

复制表格

需要复制的表格

v-for="(temp,key) in tableColums"

:key="key"

>{{temp.name||temp.text||temp.title}}

v-for="(item,index) in copyTableList"

:key="index"

>

v-for="(temp,key) in tableColums"

:key="key"

>

`{{item[temp.label]||'0'}}`//自定义渲染内容

需要用到textarea

经过复制的内容放入textarea中,然后去除textarea 的value,就可以去除表格自带样式,只取表格数据内容

name=""

:id="`copyTextarea${tableKey}`"

cols="30"

rows="10"

>

data

data(){

return {

tableKey: 'helloword',

tableColums: [

{

name: "姓名",

label: "name"

},

{

name: "性别",

label: "sex"

},

{

name: "年龄",

label: "age"

}

],

copyTableList: [

{

name: '张三',

sex: '男',

age: '20',

},

{

name: '李四',

sex: '女',

age: '30',

}

]

}

}

模板初始化

initCopy() {

let self = this;

Vue.nextTick(function() {

if (self.xTableObj.afterFullData.length > 0) {

self.copyTableList = self.xTableObj.afterFullData;

}

let copybtn = document.getElementById(`copyBtn${self.tableKey}`);

let copyTable = document.getElementById(`copyTable${self.tableKey}`);

textarea.value = "";

setTimeout(() => {

textarea.value = copyTable.innerText;

if(self.clipboard){

self.clipboard.destroy();

}

let clipboard = new Clipboard(copybtn);

self.clipboard = clipboard;

self.clipboard.on("success", function(e) {

self.$message({

message: "表格复制成功",

type: "success"

});

self.clipboard.destroy();

});

}, 500);

});

}

总结

由于表格带有排序、筛选的操作,需要每次操作完后,复制的是操作后的表格内容,因此会多次调用初始化方法,需要每次定义之前,或者成功复制之后进行清除。

这样既可保证,只有一个复制模板的定义,也就不会在多次操作排序或者筛选之后,弹多个提示。

注意

表格中用到的tableKey,用来指定唯一表格。单页应用,经常可能会取到多个,需要进行区分。

b739ec46bb5c46d9c0aa4ce35ba1ea56.png

关于找一找教程网

本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。

本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。

[Clipboard中success重复提示处理,顺带记录表格复制]http://www.zyiz.net/tech/detail-140164.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值