uni-app input的type设置为digit时,在h5与app平台上,会出现输入小数点时,光标自动回到开头的问题
uni-app input的type设置为digit时,在h5与app平台上,会出现输入小数点时,光标自动回到开头的问题
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | win10 | HBuilderX |
示例代码:
<input class="uni-input" type="digit" placeholder="带小数点的数字键盘" />
操作步骤:
- 输入带小数点的数字即可复现
预期结果:
- 输入小数点时,光标应正常显示
实际结果:
- 输入小数点时,光标总是自动回到开头
bug描述:
在h5与app上,会出现输入小数点时,光标自动回到开头的问题,h5必现,app上个别手机输入法不同会导致没有这个问题,大部分必现
更多关于uni-app input的type设置为digit时,在h5与app平台上,会出现输入小数点时,光标自动回到开头的问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
HBuilderX 4.16.2024051009-alpha 已修复 相关问题 https://ask.dcloud.net.cn/question/190763
更多关于uni-app input的type设置为digit时,在h5与app平台上,会出现输入小数点时,光标自动回到开头的问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在 uni-app 中,当 input 组件的 type 设置为 digit 时,在 H5 和 App 平台上可能会出现输入小数点时,光标自动回到开头的问题。这个问题通常是由于平台对 digit 类型的处理方式不同导致的。
解决方案
-
使用
type="number"代替type="digit"type="number"在大多数平台上可以正常处理小数点的输入,并且不会出现光标跳转的问题。- 但需要注意的是,
type="number"在某些平台上可能会限制输入的内容为数字和小数点。
<input type="number" v-model="inputValue" /> -
使用
inputmode="decimal"inputmode="decimal"可以让输入框在移动设备上显示数字键盘,并且允许输入小数点。- 这种方法不会出现光标跳转的问题。
<input inputmode="decimal" v-model="inputValue" /> -
自定义输入验证
- 如果你需要更精确的控制输入内容,可以使用
type="text"并自定义输入验证逻辑,确保用户只能输入数字和小数点。
<input type="text" v-model="inputValue" [@input](/user/input)="validateInput" /> <script> export default { data() { return { inputValue: '' }; }, methods: { validateInput(event) { this.inputValue = event.target.value.replace(/[^0-9.]/g, ''); } } }; </script> - 如果你需要更精确的控制输入内容,可以使用
-
使用
uni-app的input事件- 通过监听
input事件,可以手动处理输入内容,避免光标跳转问题。
<input type="text" v-model="inputValue" [@input](/user/input)="handleInput" /> <script> export default { data() { return { inputValue: '' }; }, methods: { handleInput(event) { this.inputValue = event.detail.value; } } }; </script> - 通过监听

