我想写一个省市的选择框做成类似iview中picker那种,但是在写的时候发现,使用focus事件控制列表显示/隐藏切换不好用,查了半天没找到好的解决办法

下面是我的代码:

  • {{item.province}}

    • {{item.city_label}}

export default {

name: "cityDicker",

data() {

return {

citylistshow: false, // 城市选择面板

selprovice: "",

selcity: "",

workCity: "",

cityList: [

{

province: "北京",

province_code: "001",

citys: [

{

city_label: "北京市",

city_code: "001001"

},

{

city_label: "北京郊区",

city_code: "001002"

}

]

},

{

province: "上海",

province_code: "002",

citys: [

{

city_label: "上海市",

city_code: "002001"

},

{

city_label: "其他",

city_code: "002002"

}

]

},

{

province: "深圳",

province_code: "003",

citys: [

{

city_label: "深圳",

city_code: "003001"

},

{

city_label: "其他",

city_code: "003002"

}

]

}

]

};

},

methods: {

cityFocus(flag) {

if (this.cityfocus === true) {

this.cityfocus = false;

} else {

this.citylistshow = flag;

console.log(this.citylistshow);

}

},

provinceClick(prov, e) {

this.citylistshow = true;

if (this.selprovice === prov) {

this.selprovice = "";

} else {

this.selprovice = prov;

}

},

cityClick(prov, e) {

if (this.selcity === prov) {

this.selcity = "";

this.workCity = "";

} else {

this.selcity = prov;

this.workCity = {

provice: this.selprovice,

city: this.selcity,

citycode: e.target.dataset.citycode

};

}

this.$emit("getWorkerCity", this.workCity);

console.log(this.workCity);

}

}

};

.city-select-picker {

display: inline-block;

position: relative;

z-index: 100;

.provice-list {

position: absolute;

background-color: #fff;

box-shadow: 0 1px 6px rgba(0, 0, 0, 0.2);

border-radius: 4px;

padding: 0 5px;

width: 500px;

left: 0;

top: 37px;

.provice-item {

display: inline-block;

padding: 3px 5px;

background-color: #f4f4f4;

margin: 10px 5px;

&:hover {

background-color: #e0e0e0;

}

}

}

.city-list {

position: absolute;

width: 500px;

left: 0;

margin-top: 10px;

box-shadow: 0 1px 6px rgba(0, 0, 0, 0.2);

padding: 0 5px 10px;

background-color: #fff;

border-bottom-left-radius: 4px;

border-bottom-right-radius: 4px;

.city-item {

display: inline-block;

padding: 3px 5px;

background-color: #f4f4f4;

margin: 5px;

&:hover {

background-color: #e0e0e0;

}

}

}

.proactive {

background-color: #e0e0e0 !important;

}

}

运行的结果如下图:

当点击下面的弹出层的时候直接失去焦点就消失了,造成根本选不了的结果

我想要的结果是这种点击弹出的东西文本框不会失去焦点的样子,如截图:

点击年份文本框是不会失去焦点的这种,但是想半天一直没找到好用的实现思路,希望有大神能帮忙指点下思路,非常感谢!

input取消焦点 vue_vue如何能做到点击其他地方input不失去焦点相关推荐

  1. js设置点击某地方input框不失焦

    比如点击class为layui-laydate的地方使input框不失焦$(".layui-laydate").mousedown(function(e){e.preventDef ...

  2. input取消焦点 vue_Vue有什么特性,相对于其他框架都有那些优势!

    (给达达前端加星标,提升前端技能) Vue所提供的一些相对高级的特性,表单操作,自定义指令,计算属性,过滤器,侦听器,生命周期. 表单操作的作用,用于用户的交互,通过表单来进行数据的交互. 基于Vue ...

  3. js confirm 点击取消时什么也不做

    点击保存时,弹出框:确定修改此信息吗?  点击"确定",提交表单  点击"取消",什么也不做,停留在原页面(注意加了:return false)  functi ...

  4. Jquery php 点击td变成input,修改后失去焦点发送数据

    html部分 <Td><?php echo $row['bigclassid']?></Td> <td height="25" width ...

  5. 方维模板修改,发布分享、主题有商品时,标签需自动写到input里,不要再手动去点击添加,手动点击可取消...

    方维模板修改,发布分享.主题有商品时,标签需自动写到input里,不要再手动去点击添加,手动点击可取消 方维购物分享系统模板修改,发布分享.主题有商品时,标签需自动写到input里,不要再手动去点击添 ...

  6. Win10怎么取消开机密码?这样做就可以!

    集美们,我每次开电脑都要输入密码,感觉太麻烦了,想把开机密码取消掉,应该怎么做呀?感谢回答!] 在Windows 10操作系统中,用户可以设置开机密码来保护计算机的安全性.然而,有时候用户可能希望取消 ...

  7. input输入长度 vue_Vue实现input宽度随文字长度自适应操作

    业务需求,输入文字,后面的元要紧随其后,奈何input默认是有宽度,我想要达到,输入文字,动态改变input的宽度,试了很多方法,目前自己琢磨一种,有遇到问题的可以参考一下, 直接贴代码 type=& ...

  8. html表单框内文字点击消失,jQuery 使用label实现点击表单input,提示文字消失的示例...

    感兴趣的小伙伴,下面一起跟随512笔记的小编罗X来看看吧. 很多网站在填写表单的时候,都可以看到这样一种UI,input[type=text]里面有提示的文字,当鼠标点进去之后提示文字就消失了.以前做 ...

  9. 你真的完全掌握了 Input 组件的键盘控制么? ——百度智能小程序 Input 组件原理剖析与键盘行为说明

    在百度智能小程序的很多开发场景中,我们都会使用到 Input 输入框组件.而在操作输入框的过程中,正确处理键盘的弹出和收起行为也是十分重要的一环.键盘行为不仅需要完美符合业务场景,同时也和用户体验息息 ...

最新文章

  1. 作业收缴系统使用手册(自写开源小系统)
  2. django 国际化 ugettext()
  3. EZNEW.NET开发框架100%重磅开源
  4. Python小白的数学建模课-17.条件最短路径算法
  5. 无法移动或重命名“Documents and Settings”文件夹
  6. cropper+pillow处理上传图片剪裁(一)
  7. python中random库中shuffle_[宜配屋]听图阁 - 详解Python中打乱列表顺序random.shuffle()的使用方法...
  8. IIS装好了无法访问localhost
  9. Centos8下修改ssh端口号
  10. kali系统的部分查看命令
  11. 综合项目之闪讯破解(二)之 如何用C++建立PPPOE连接
  12. python中match函数的用法_浅谈Python中re.match()和re.search()的使用及区别
  13. Flutter更改主题颜色报错:type ‘Color‘ is not a subtype of type ‘MaterialColor‘
  14. ios怎么ftp上传文件到服务器,Mac OS通过 FTP工具上传文件的方法
  15. IDEA中Javaweb项目图片加载不出来解决方案
  16. 爱情故事:追忆似水流年 回味永恒的爱恋
  17. What is base..ctor(); in C#?
  18. linux不支持modprobe命令,Linux中modprobe命令起什么作用呢?
  19. 吞吐量 反应时间 延时 抖动 丢包 概念解释
  20. Hudson 持续集成服务器的安装配置与使用

热门文章

  1. Bugku:分析 抓到一只苍蝇
  2. JAVA 游戏分享 - “是男人就下100层”
  3. 背包问题的解密及破解
  4. 百度推广账户搭建思路
  5. linux dhcp 4.3编译,关于在嵌入式Linux下编译dhcp报错“cannot check for file existence when cross compiling”的初步研究...
  6. 高德地图和canvas画图结合应用(一)
  7. 网络威胁情报项目:为什么仍然很疯狂
  8. 三体运动python模拟(代码能直接运行)
  9. 【Python】用Pillow库为几百张二次元壁纸添加图标
  10. 第9章 SQL INSERT INTO 语句教程