uniapp下type为digit的输入框在后面显示固定文字
效果
实现思路
<view class="form_name">金额(元):</view>
<view class="weui-cell weui-cell_input">
<input class="weui-input money-input money-input1" ref="moneyInput" maxlength="14" type="digit" @input="moneyFun" @focus="focusMoneyInput" @blur="blurMoneyInput" @keyboardheightchange="moneyInputHeightChange" :disabled="flag" placeholder="" />
<input class="weui-input money-input" disabled ref="moneyInput" type="text" :value="money" placeholder="请输入金额" />
</view>
创建两个input,用定位将他们重叠在一起上层input的type设置为"digit",下层input的type设置为"text".
上层的字体颜色设置成透明,上层负责输入绑定事件,下层负责显示文本.
// 金额获取焦点,去掉后缀:元
focusMoneyInput() {
if (this.money.length < 2) return
if (typeof this.money == "number" || -1 !== this.money.indexOf('元')) {
this.setData({
money: parseInt(this.money)
})
}
},
// 金额失去焦点,添加后缀:元
blurMoneyInput() {
if (typeof this.money == "number" || -1 === this.money.indexOf('元')) {
this.setData({
money: this.money += "元"
})
}
},
// 键盘高度发生变化时触发
moneyInputHeightChange() {
if (typeof this.money == "number" || -1 === this.money.indexOf('元')) {
this.setData({
money: this.money += "元"
})
}
}
【推荐】FlashTable:表单开发界的极速跑车,让你的开发效率一路狂飙
【推荐】Flutter适配HarmonyOS 5知识地图,实战解析+高频避坑指南
【推荐】博客园的心动:当一群程序员决定开源共建一个真诚相亲平台
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 领域模型应用
· 记一次 ADL 导致的 C++ 代码编译错误
· MySQL查询执行顺序:一张图看懂SQL是如何工作的
· 为什么PostgreSQL不自动缓存执行计划?
· 于是转身独立开发者
· 从被喷“假开源”到登顶 GitHub 热榜,这个开源项目上演王者归来!
· Cursor 1.2重磅更新,这个痛点终于被解决了!
· C#/.NET/.NET Core优秀项目和框架2025年6月简报
· Stack Overflow,轰然倒下!
· 上周热点回顾(6.30-7.6)