el-date-picker 隐藏输入框 通过按钮实现弹出

在这里插入图片描述
通过点击 下载制定时间数据 弹出 el-date-picker 组件

2.给它设置一个ref标识,在需要选择自定义时间时,直接通过this. r e f s . d a t e P i c k e r R e f 找到该组件,然后 refs.datePickerRef找到该组件,然后 refs.datePickerRef找到该组件,然后el表示组件元素,通过调用click点击事件控制选择器显示。

html代码:

 <el-date-picker
    v-model="timePick1"
    type="datetimerange"
    range-separator=""
    start-placeholder="开始日期"
    end-placeholder="结束日期"
    ref="tiemPick"
    class="timnePickCSS"
  >
  </el-date-picker>

 <div  @click="uploadTime">
   下载指定时间数据
 </div>

js

uploadTime() {

  // 二选一
  // if (this.$refs.tiemPick.$el) this.$refs.tiemPick.$el.click();
  if (this.$refs.tiemPick) this.$refs.tiemPick.focus();
}

Bug

上面处理出现的bug就是时间选择器会跑到页面左上角,因为时间选择器是相对选择框来定位的,当选择框设置隐藏时,时间选择器就会相对整个页面来定位了,elementui封装的就是如此,除非修改源码。

所以还是需要让选择框显示,不能设置隐藏,但是可以通过设置层级间接实现。

解决方法

.timnePickCSS{
  位置 自己设置
  position: fixed;
  top: 30%;
  left: 70%;
  z-index: -1;
}

在这里插入图片描述

给 元素设置 visibility:hidden;  也可以
隐藏该元素,真正的隐藏,但他还占有那块空间。 
  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 18
    评论
点击文本框中按钮弹出日期 <div style="width:110px; float:left;"><input name="text" type="text" class="Input" id=showdate /></div><div style="margin-left:-20px; margin-top:4px; width:20px; float:left; z-index:1000;"> <input name="image" type="image" id=controlcalendar onclick="javascript:document.getElementById('caltable').style.display='';" value="日历" src="images/rq.gif" /></div> <table border="0" cellpadding="0" cellspacing="1" class="Calendar" id="caltable" style="display:none"> <thead> <tr align="center" valign="middle"> <td colspan="7" class="Title"> <a href="javaScript:subMonth();" title="上一月" Class="DayButton">3</a> <input name="year" id="year" type="text" size="4" maxlength="4" onKeyDown="if (event.keyCode==13){setDate()}" onKeyUp="this.value=this.value.replace(/[^0-9]/g,'')" onpaste="this.value=this.value.replace(/[^0-9]/g,'')"> 年 <input name="month" id="month" type="text" size="1" maxlength="2" onKeyDown="if (event.keyCode==13){setDate()}" onKeyUp="this.value=this.value.replace(/[^0-9]/g,'')" onpaste="this.value=this.value.replace(/[^0-9]/g,'')"> 月 <a href="JavaScript:addMonth();" title="下一月" Class="DayButton">4</a> </td> </tr> <tr align="center" valign="middle"> <Script LANGUAGE="JavaScript"> document.write("<TD class=DaySunTitle id=diary >" + days[0] + "</TD>"); for (var intLoop = 1; intLoop < days.length-1;intLoop++) document.write("<TD class=DayTitle id=diary>" + days[intLoop] + "</TD>"); document.write("<TD class=DaySatTitle id=diary>" + days[intLoop] + "</TD>"); </Script> </TR> </thead> <TBODY border=1 cellspacing="0" cellpadding="0" ID="calendar" ALIGN=CENTER ONCLICK="getDiary()"> <Script LANGUAGE="JavaScript"> for (var intWeeks = 0; intWeeks < 6; intWeeks++) { document.write("<TR style='cursor:hand'>"); for (var intDays = 0; intDays < days.length;intDays++) document.write("<TD class=CalendarTD onMouseover='buttonOver();' onMouseOut='buttonOut();'></TD>"); document.write("</TR>"); } </Script> </TBODY> </TABLE>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值