javascript - @blur 标记清除 Vue.js SPA 组件中的输入值
问题描述
我正在将使用 jQuery 的应用程序转换为 Vue.js SPA(没有 jQuery)。目前,一些 jQuery 语句会在相关输入字段获得焦点时切换隐藏 div 的显示,然后在模糊时再次隐藏。
在一个 vue 组件中,我添加了一个数据选项,phoneNumberHasFocus
在现场焦点上设置为 true,在模糊上设置为 false。这有效,div 的显示在焦点/模糊上切换。
但是,输入字段中输入的任何值都会在模糊时丢失。
export default {
name: 'profile',
data: function() {
return {
phoneNumberHasFocus: false
}
},
}
<div class="col-md-6 col-sm-8">
<div class="input-area">
<input type="text" class="form-control" placeholder="Phone number" name="phoneNumber" ref="phoneNumber" :value="user.userdetails.phoneNumber" @focus="phoneNumberHasFocus=true" @blur="phoneNumberHasFocus=false" />
</div>
<div v-show="phoneNumberHasFocus" class="help-text">
Please provide a phone number here if you’d like us to contact you by phone when you make an enquiry. Include the area code and extension if required.
</div>
</div>
当焦点位于输入字段上时,是否有人遇到过此问题或有其他方法来切换 div 的显示?
解决方案
添加user.userdetails.phoneNumber
到您的数据方法
export default {
name: 'profile',
data: function() {
return {
phoneNumberHasFocus: false
user: {
userdetails: {
phoneNumber: ''
}
}
}
},
}
并v-model
用于 2 路绑定
<input type="text" class="form-control" v-model="user.userdetails.phoneNumber" placeholder="Phone number" name="phoneNumber" ref="phoneNumber" v-mo="user.userdetails.phoneNumber" @focus="phoneNumberHasFocus=true" @blur="phoneNumberHasFocus=false" />
推荐阅读
- linux - 使用 diff -u 显示两个文件之间的差异
- glsl - GLSL-ES3(webGL2):如何从片段着色器测试扩展?
- time-complexity - 给定一个显示各种输入大小值与它们相应的运行时间值的 Excel 表,我如何确定“Big-oh”时间复杂度
- c# - C# 中返回 void 的高阶函数
- amazon-web-services - 使用在 Fargate linux 容器中运行的 .net 核心写入 AWS EC2 实例上的文件共享
- django - django forms - 为model中的每个对象创建一个form,然后保存到对应的PK
- azure - Azure Cosmos db:批量删除记录时请求超出速率限制
- python - 我可以在不使用网络服务器的情况下运行 gwt 项目吗
- java - 尝试在另一个活动中显示详细信息“java.lang.IndexOutOfBoundsException:索引:0,大小:0”
- node.js - 如何使用nodejs将数据类型字符串更改为mongo集合中特定字段的编号