背景

使用 Element Plus 组件库的 Input 输入框时,如果同时设置 type="textareaclearable,clearable 不会起作用

首先我想到的方法是 #suffix 插槽解决,但是这个插槽也是针对 input 的,textarea 也不会生效

实现方案

使用组件库自带的 Icon 组件,使用定位的方式,将图标放在文本域中。同时手动实现清空效果。

代码参考:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<template>
<el-input
v-model="form.content"
type="textarea"
maxlength="1000"
placeholder="请输入详细内容"
show-word-limit
word-limit-position="outside"
/>
<el-icon v-if="form.content" class="textarea-clear" @click="clearContent">
<CircleClose/>
</el-icon>
</template>

<script setup lang="ts">
const clearContent = () => {
form.content = ''
}
</script>

<style lang="scss" scoped>
.textarea-clear {
position: absolute;
right: 10px;
top: 10px;
color: #91949a;
}
</style>

效果如图: