el-input在粘贴数据长度很大时会使页面卡死,但百度csdn就做了控制,只能粘贴字数允许内的文字。
解决方案:
paste事件监听做操作,具体如下:
<el-input type="textarea" :rows="5" v-model="form.uploadText" @paste.native.capture.prevent="pasing" placeholder="数据不可超过1MB" maxlength="1000000" show-word-limit id="uploadText">
</el-input>
native:不加会认为paste是自定义事件,不会被识别
capture:表示在捕获阶段执行,默认为冒泡执行
prevent:阻止默认行为
methods: {
pasing(e) {
let data = e.clipboardData.getData('Text')
if (data.length > 1048570) {
this.$message.warning("数据过长")
return false;
} else {
this.form.uploadText = data // 自主赋值模拟粘贴
}
}
}