2 回复
未复现此问题,请提供可复现bug的最小化demo(上传附件),让我们及时定位问题,及时修复
【bug优先处理规则】https://ask.dcloud.net.cn/article/38139
更多关于uni-app input框的@blur方法失去焦点后,没获取到输入的字符串的最后一位的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在 uni-app 中,input 框的 @blur 事件在某些情况下可能会在输入框失去焦点时,无法获取到输入字符串的最后一位字符。这通常是因为 @blur 事件触发时,输入框的值还没有完全更新。
解决方案
-
使用
@input事件:你可以在用户输入时实时更新输入框的值,而不是在失去焦点时才获取值。这样可以确保你始终获取到最新的输入内容。<template> <input v-model="inputValue" @input="handleInput" @blur="handleBlur" /> </template> <script> export default { data() { return { inputValue: '' }; }, methods: { handleInput(event) { this.inputValue = event.detail.value; }, handleBlur() { console.log('失去焦点时的值:', this.inputValue); } } }; </script> -
使用
@change事件:@change事件在输入框失去焦点且值发生变化时触发,通常比@blur更可靠。<template> <input v-model="inputValue" @change="handleChange" /> </template> <script> export default { data() { return { inputValue: '' }; }, methods: { handleChange(event) { console.log('输入框值发生变化时的值:', event.detail.value); } } }; </script> -
结合
@blur和@input:如果你仍然需要使用@blur事件,可以结合@input事件来确保在失去焦点时获取到最新的输入值。<template> <input v-model="inputValue" @input="handleInput" @blur="handleBlur" /> </template> <script> export default { data() { return { inputValue: '' }; }, methods: { handleInput(event) { this.inputValue = event.detail.value; }, handleBlur() { console.log('失去焦点时的值:', this.inputValue); } } }; </script>

