IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> bootstrap-datepicker控件的使用及修改位置错误问题 -> 正文阅读

[JavaScript知识库]bootstrap-datepicker控件的使用及修改位置错误问题

bootstrap-datepicker控件的使用及修改位置错误问题

一、html自带的时间日期控件

html自带位时间日期控件,却没有format属性,它的显示格式是:“yyyy/mm/dd”有时候我们需要时间日期格式为“yyyy-mm-dd",虽然HTML5中INPUT类型支持date并没有规定日历弹出框的实现和样式。所以,各浏览器根据自己的设计实现日历。对于日期格式也只有一种,这对于数据库输入有要求"yyyy-mm-dd"就无能为力了。在Input类型获得时间日期控件也非常简单只需输入date就可以显示控件。
如图1、2所示:
html

<div class="row mb-3 mt-3  "  >
<label  class="col-sm-3 col-form-label" >有效期止</label>
	 <div class="col-sm-9" >                          
	   <input type="date" class="form-control "  >    
	 </div>
</div>

图1、
在这里插入图片描述
图2、
在这里插入图片描述

二、使用bootstrap-datepicker时间日期控件

下载地址:https://github.com/uxsolutions/bootstrap-datepicker
文档说明:https://bootstrap-datepicker.readthedocs.io/en/latest/index.html
下载文件夹如图3所示:
在这里插入图片描述
下载文件夹中的一个dist文件夹保存三个文件夹有css与js以及locales文件夹复制粘贴到你的项目文件中即可。其中locales文件夹中保存的是各国语言js文件想显示中文日期就要引入这个文件

二、在HTML中引用bootstrap-datepicker时间日期控件

引用CSS HTML

<link href="../assets/vendor/bootstrap/css/bootstrap.css" rel="stylesheet">
<link href="../assets/vendor/bootstrap-icons/bootstrap-icons.css" rel="stylesheet">
<link href="../assets/vendor/bootstrap/css/bootstrap-datepicker.css" rel="stylesheet">
<link href="../assets/vendor/bootstrap/css/bootstrap-select.min.css" rel="stylesheet">
  

引用js HTML

 <script src="../assets/vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
 <script src="../assets/vendor/bootstrap/js/bootstrap-select.min.js"></script>
 <script src="../assets/vendor/bootstrap/js/bootstrap-datepicker.js"></script>
 <script src="../assets/vendor/bootstrap/js/language/bootstrap-datepicker.zh-CN.min.js"></script>

其中bootstrap-datepicker.zh-CN.min.js是时间日期汉化包,引入CSS与JS文件后即可使得,只需将Input标签类型改为type="text即可,由于我使用了两个以上的日期输入框这里采用属性值来初始化bootstrap-datepicker日期控件,data-* 属性是 HTML5 新增的用于存储私有页面后应用的自定义数据 “form_datetime”将在script中被初始化。

下面展示一些 内联代码片

<div class="row mb-3 mt-3  "  >
<label  class="col-sm-3 col-form-label" >有效期止</label>
 <div class="col-sm-9" >                          
   <input type="text" class="form-control date form_datetime" >     
 </div>
</div>

初始化bootstrap-datepicker日期控件

见代码 内联代码片

<script type="text/javascript">
    //多选下拉框初始化
    $(function () {
      $('.selectpicker').selectpicker();
      $('.selectpicker').selectpicker('refresh');
      $('.selectpicker').selectpicker('render');
    });
    //  鼠标悬停提示信息初始化
    $(document).ready(function () {
      $('[data-toggle="tooltip"]').tooltip();
    });
   //初始化日期
   var $date = $(".form_datetime");
    $(document).ready(function () { 
        $date.datepicker({
            language: "zh-CN", //中文
            autoclose: true, //自动关闭
            // clearBtn: true, //显示'清空'按钮
            // todayBtn: true, //显示'今天'按钮
            todayHighlight: true, //当天高亮
            keyboardNavigation:true,           
            format: "yyyy-mm-dd", //日期格式
            orientation: 'bottom'
        });
       
    });

如图4所示:
在这里插入图片描述
可以看到时间日期显示了,日期格式如图5所示:
在这里插入图片描述

三、bootstrap-datepicker时间日期控件修改位置错误问题

如图4所示时间日期显示框靠上了,没有显示到正确位置,打开bootstrap-datepicker.js文件注意这里打开的不是压缩文件找到676行以Datepicker for Bootstrap v1.9.0板本为准
下面展示一些 内联代码片

	});
			
			var left = offset.left - appendOffset.left;
			var top = offset.top - appendOffset.top;

			if (this.o.container !== 'body') {
				top += scrollTop;
			}

			this.picker.removeClass(
				'datepicker-orient-top datepicker-orient-bottom '+
				'datepicker-orient-right datepicker-orient-left'
			);

将var top = offset.top - appendOffset.top;改为var top = offset.top +15;

下面展示一些 内联代码片

var height = this.component ? this.component.outerHeight(true) : this.element.outerHeight(false);
			var width = this.component ? this.component.outerWidth(true) : this.element.outerWidth(false);
			var left = offset.left - appendOffset.left;
			var top = offset.top +15;

			if (this.o.container !== 'body') {
				top += scrollTop;
			}

如图5所示:
在这里插入图片描述
显示正常

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-06-03 23:55:30  更:2022-06-03 23:56:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:35:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码