深夜记录一下这个问题,真的折腾了我一天,element的el-input上为了去除首尾空格,在v-model后面加了.trim,结果空格在输入框里压根输不进去。
我记得之前写的项目就算加了trim还是可以输入空格的,等调后台接口时会直接把首尾空格去掉的,这次怎么不行了呢。其他人说他们的项目就可以呀,我还看他们在本地跑的项目确实是可以的。我胡乱检查了node版本,vue版本,element版本,又看了其他人的正常的项目里的版本,绕了一大圈,结果发现问题所在是element,它的版本问题。
element官网上新版本上的输入框组件那里醒目的写着不支持v-model修饰符,我咋就没看到呢,咋就没去看element的文档呢,哎,解决问题的方法不对啊。后来我分别看了element的2.15.1以及前面好几个版本都这样写着不支持,试了下2.5.4,2.4.11,2.3.9版本,发现从2.5.4版本开始就已经不支持了,2.3.9和2.4.11版本都是可以随意输入空格的,记得切换版本尝试时,要重新npm run dev一下哦。
在此记录一下这次遇到的问题,遇到问题找寻问题点,多看一下官方文档。
解决办法
从其它博客找到了一个方法,那就是不用修饰符.trim,使用js的trim方法,在el-input的@blur事件中去除首尾空格,写法如下:
<el-input v-model="formData.name" @blur="formData.name=$event.target.value.trim()"></el-input>