Vue 前端 el-input 如何实现输入框内容始终添加在尾部%

要在 el-input 输入框的尾部添加 %,你可以通过两种方式来实现:

  1. 使用 suffix 插槽:这是最直接和最常用的方法。
  2. 使用 append 插槽:如果你需要在输入框内或者右侧显示其他内容。

方法 1:使用 suffix 插槽

el-input 提供了 suffix 插槽,可以直接在输入框的尾部显示百分号(%)符号。

vue 复制代码
<template>
  <el-input v-model="value" placeholder="请输入数字" suffix="%"></el-input>
</template>

<script>
export default {
  data() {
    return {
      value: '' // 用来绑定输入框的值
    };
  }
}
</script>

解释:

  • suffix="%":通过 suffix 插槽,你可以直接将 % 添加到输入框的尾部。
  • v-model="value":绑定输入框的值到 value,你可以在脚本中操作该值。

方法 2:使用 append 插槽

如果你希望在输入框右侧显示更复杂的内容,可以使用 append 插槽。

vue 复制代码
<template>
  <el-input v-model="value" placeholder="请输入数字">
    <template #append>%</template>
  </el-input>
</template>

<script>
export default {
  data() {
    return {
      value: '' // 用来绑定输入框的值
    };
  }
}
</script>

解释:

  • 使用 #append 插槽将 % 添加到输入框的尾部。
  • 同样,v-model="value" 用来绑定输入框的值。

额外注意:

  • 上述方法中的 % 是一个静态符号,用户只能输入数字,百分号会始终显示在输入框的右侧。
  • 如果你需要在输入过程中动态地处理百分号(例如:输入时直接带上 %),可以通过格式化输入的值来处理。

额外的动态输入百分号的方法:

如果你需要实现更复杂的行为(例如用户输入 50,然后自动在后台加上 %),你可以使用 @input 事件来处理。

vue 复制代码
<template>
  <el-input
    v-model="value"
    placeholder="请输入数字"
    @input="handleInput"
  >
    <template #append>%</template>
  </el-input>
</template>

<script>
export default {
  data() {
    return {
      value: '' // 用来绑定输入框的值
    };
  },
  methods: {
    handleInput(value) {
      // 在用户输入时,处理百分号的逻辑
      this.value = value.replace('%', ''); // 移除输入中的 %,防止用户手动输入
    }
  }
}
</script>

总结:

  • suffix 插槽是最简单的方式,适用于静态显示 %
  • append 插槽适用于更灵活的布局或显示需求。
  • 如果需要动态处理输入中的百分号,可以通过 @input 事件来进行格式化。
相关推荐
我命由我123452 小时前
React - state、state 的简写方式、props、props 的简写方式、类式组件中的构造器与 props、函数式组件使用 props
前端·javascript·react.js·前端框架·html·html5·js
钰衡大师2 小时前
Vue 3 源码学习教程
前端·vue.js·学习
C澒2 小时前
React + TypeScript 编码规范|统一标准 & 高效维护
前端·react.js·typescript·团队开发·代码规范
时光少年2 小时前
Android 视频分屏性能优化——GLContext共享
前端
IT_陈寒2 小时前
JavaScript开发者必知的5个性能杀手,你踩了几个坑?
前端·人工智能·后端
跟着珅聪学java2 小时前
Electron 精美菜单设计
运维·前端·数据库
日光倾2 小时前
【Vue.js 入门笔记】闭包和对象引用
前端·vue.js·笔记
EstherNi2 小时前
左右两侧定位的效果,vue3
javascript·vue.js
一只程序熊2 小时前
UniappX 未找到 “video“ 组件,已自动当做 “view“ 组件处理。请确保代码正确,或重新生成自定义基座后再试。
前端
林小帅2 小时前
【笔记】xxx 技术分享文档模板
前端