要在Vant的Input
组件中实现仅在输入框聚焦时显示字数限制,你可以使用Vant的Field
组件(Input
组件的封装)并结合focus
和blur
事件来控制字数限制的显示。
以下是一个示例代码:
<template>
<div>
<van-field
v-model="inputValue"
:maxlength="maxLength"
:placeholder="请输入内容"
@focus="showLimit = true"
@blur="showLimit = false"
/>
<span v-if="showLimit" class="limit-text">
{{ inputValue.length }} / {{ maxLength }}
</span>
</div>
</template>
<script>
export default {
data() {
return {
inputValue: '',
maxLength: 20, // 设置最大字数限制
showLimit: false, // 控制是否显示字数限制
};
},
};
</script>
<style scoped>
.limit-text {
color: #999;
font-size: 12px;
margin-top: 5px;
}
</style>
van-field
组件:这是Vant提供的输入框组件,v-model
用于双向绑定输入框的值,maxlength
用于设置最大输入长度。@focus
和@blur
事件:分别在输入框聚焦和失焦时触发,用于控制showLimit
的值。showLimit
:这是一个布尔值,用于控制是否显示字数限制。limit-text
:这是一个简单的样式类,用于设置字数限制文本的样式。通过这种方式,你可以实现仅在输入框聚焦时显示字数限制的效果。