问题描述:
当editable中的参数type设为为datetime的时候会出现以下报错。
Uncaught TypeError: Cannot read property 'DPGlobal' of undefined
原因分析:
在bootstrap-editable.js和bootstrap-editable.css文件中没有引入datetimepicker资源文件
解决方案:
1.在bootstrap-editable.css文件尾部写入
. datetimepicker {
padding: 4 px;
margin- top: 1 px;
- webkit- border- radius: 4 px;
- moz- border- radius: 4 px;
border- radius: 4 px;
direction: ltr;
}
. datetimepicker- inline {
width: 220 px;
}
. datetimepicker. datetimepicker- rtl {
direction: rtl;
}
. datetimepicker. datetimepicker- rtl table tr td span {
float : right;
}
. datetimepicker- dropdown, . datetimepicker- dropdown- left {
top: 0 ;
left: 0 ;
}
[ class* = " datetimepicker-dropdown" ] : before {
content: '' ;
display: inline - block;
border- left: 7 px solid transparent;
border- right: 7 px solid transparent;
border- bottom: 7 px solid #ccc;
border- bottom- color: rgba ( 0 , 0 , 0 , 0.2 ) ;
position: absolute;
}
[ class* = " datetimepicker-dropdown" ] : after {
content: '' ;
display: inline - block;
border- left: 6 px solid transparent;
border- right: 6 px solid transparent;
border- bottom: 6 px solid #ffffff;
position: absolute;
}
[ class* = " datetimepicker-dropdown-top" ] : before {
content: '' ;
display: inline - block;
border- left: 7 px solid transparent;
border- right: 7 px solid transparent;
border- top: 7 px solid #ccc;
border- top- color: rgba ( 0 , 0 , 0 , 0.2 ) ;
border- bottom: 0 ;
}
[ class* = " datetimepicker-dropdown-top" ] : after {
content: '' ;
display: inline - block;
border- left: 6 px solid transparent;
border- right: 6 px solid transparent;
border- top: 6 px solid #ffffff;
border- bottom: 0 ;
}
. datetimepicker- dropdown- bottom- right: before {
top: - 7 px;
right: 6 px;
}
. datetimepicker- dropdown- bottom- right: after {
top: - 6 px;
right: 7 px;
}
. datetimepicker- dropdown- bottom- left: before {
top: - 7 px;
left: 6 px;
}
. datetimepicker- dropdown- bottom- left: after {
top: - 6 px;
left: 7 px;
}
. datetimepicker- dropdown- top- right: before {
bottom: - 7 px;
right: 6 px;
}
. datetimepicker- dropdown- top- right: after {
bottom: - 6 px;
right: 7 px;
}
. datetimepicker- dropdown- top- left: before {
bottom: - 7 px;
left: 6 px;
}
. datetimepicker- dropdown- top- left: after {
bottom: - 6 px;
left: 7 px;
}
. datetimepicker > div {
display: none;
}
. datetimepicker. minutes div. datetimepicker- minutes {
display: block;
}
. datetimepicker. hours div. datetimepicker- hours {
display: block;
}
. datetimepicker. days div. datetimepicker- days {
display: block;
}
. datetimepicker. months div. datetimepicker- months {
display: block;
}
. datetimepicker. years div. datetimepicker- years {
display: block;
}
. datetimepicker table {
margin: 0 ;
}
. datetimepicker td,
. datetimepicker th {
text- align: center;
width: 20 px;
height: 20 px;
- webkit- border- radius: 4 px;
- moz- border- radius: 4 px;
border- radius: 4 px;
border: none;
}
. table- striped . datetimepicker table tr td,
. table- striped . datetimepicker table tr th {
background- color: transparent;
}
. datetimepicker table tr td. minute: hover {
background: #eeeeee;
cursor: pointer;
}
. datetimepicker table tr td. hour: hover {
background: #eeeeee;
cursor: pointer;
}
. datetimepicker table tr td. day: hover {
background: #eeeeee;
cursor: pointer;
}
. datetimepicker table tr td. old,
. datetimepicker table tr td. new {
color: #999999 ;
}
. datetimepicker table tr td. disabled,
. datetimepicker table tr td. disabled: hover {
background: none;
color: #999999 ;
cursor: default ;
}
. datetimepicker table tr td. today,
. datetimepicker table tr td. today: hover,
. datetimepicker table tr td. today. disabled,
. datetimepicker table tr td. today. disabled: hover {
background- color: #fde19a;
background- image: - moz- linear- gradient ( top, #fdd49a, #fdf59a) ;
background- image: - ms- linear- gradient ( top, #fdd49a, #fdf59a) ;
background- image: - webkit- gradient ( linear, 0 0 , 0 100 % , from ( #fdd49a) , to ( #fdf59a) ) ;
background- image: - webkit- linear- gradient ( top, #fdd49a, #fdf59a) ;
background- image: - o- linear- gradient ( top, #fdd49a, #fdf59a) ;
background- image: linear- gradient ( top, #fdd49a, #fdf59a) ;
background- repeat: repeat- x;
filter: progid: DXImageTransform. Microsoft. gradient ( startColorstr= '#fdd49a' , endColorstr= '#fdf59a' , GradientType= 0 ) ;
border- color: #fdf59a #fdf59a #fbed50;
border- color: rgba ( 0 , 0 , 0 , 0.1 ) rgba ( 0 , 0 , 0 , 0.1 ) rgba ( 0 , 0 , 0 , 0.25 ) ;
filter: progid: DXImageTransform. Microsoft. gradient ( enabled= false) ;
}
. datetimepicker table tr td. today: hover,
. datetimepicker table tr td. today: hover: hover,
. datetimepicker table tr td. today. disabled: hover,
. datetimepicker table tr td. today. disabled: hover: hover,
. datetimepicker table tr td. today: active,
. datetimepicker table tr td. today: hover: active,
. datetimepicker table tr td. today. disabled: active,
. datetimepicker table tr td. today. disabled: hover: active,
. datetimepicker table tr td. today. active,
. datetimepicker table tr td. today: hover. active,
. datetimepicker table tr td. today. disabled. active,
. datetimepicker table tr td. today. disabled: hover. active,
. datetimepicker table tr td. today. disabled,
. datetimepicker table tr td. today: hover. disabled,
. datetimepicker table tr td. today. disabled. disabled,
. datetimepicker table tr td. today. disabled: hover. disabled,
. datetimepicker table tr td. today[ disabled] ,
. datetimepicker table tr td. today: hover[ disabled] ,
. datetimepicker table tr td. today. disabled[ disabled] ,
. datetimepicker table tr td. today. disabled: hover[ disabled] {
background- color: #fdf59a;
}
. datetimepicker table tr td. today: active,
. datetimepicker table tr td. today: hover: active,
. datetimepicker table tr td. today. disabled: active,
. datetimepicker table tr td. today. disabled: hover: active,
. datetimepicker table tr td. today. active,
. datetimepicker table tr td. today: hover. active,
. datetimepicker table tr td. today. disabled. active,
. datetimepicker table tr td. today. disabled: hover. active {
background- color: #fbf069 \9 ;
}
. datetimepicker table tr td. active,
. datetimepicker table tr td. active: hover,
. datetimepicker table tr td. active. disabled,
. datetimepicker table tr td. active. disabled: hover {
background- color: #006 dcc;
background- image: - moz- linear- gradient ( top, #0088 cc, #0044 cc) ;
background- image: - ms- linear- gradient ( top, #0088 cc, #0044 cc) ;
background- image: - webkit- gradient ( linear, 0 0 , 0 100 % , from ( #0088 cc) , to ( #0044 cc) ) ;
background- image: - webkit- linear- gradient ( top, #0088 cc, #0044 cc) ;
background- image: - o- linear- gradient ( top, #0088 cc, #0044 cc) ;
background- image: linear- gradient ( top, #0088 cc, #0044 cc) ;
background- repeat: repeat- x;
filter: progid: DXImageTransform. Microsoft. gradient ( startColorstr= '#0088cc' , endColorstr= '#0044cc' , GradientType= 0 ) ;
border- color: #0044 cc #0044 cc #002 a80;
border- color: rgba ( 0 , 0 , 0 , 0.1 ) rgba ( 0 , 0 , 0 , 0.1 ) rgba ( 0 , 0 , 0 , 0.25 ) ;
filter: progid: DXImageTransform. Microsoft. gradient ( enabled= false) ;
color: #fff;
text- shadow: 0 - 1 px 0 rgba ( 0 , 0 , 0 , 0.25 ) ;
}
. datetimepicker table tr td. active: hover,
. datetimepicker table tr td. active: hover: hover,
. datetimepicker table tr td. active. disabled: hover,
. datetimepicker table tr td. active. disabled: hover: hover,
. datetimepicker table tr td. active: active,
. datetimepicker table tr td. active: hover: active,
. datetimepicker table tr td. active. disabled: active,
. datetimepicker table tr td. active. disabled: hover: active,
. datetimepicker table tr td. active. active,
. datetimepicker table tr td. active: hover. active,
. datetimepicker table tr td. active. disabled. active,
. datetimepicker table tr td. active. disabled: hover. active,
. datetimepicker table tr td. active. disabled,
. datetimepicker table tr td. active: hover. disabled,
. datetimepicker table tr td. active. disabled. disabled,
. datetimepicker table tr td. active. disabled: hover. disabled,
. datetimepicker table tr td. active[ disabled] ,
. datetimepicker table tr td. active: hover[ disabled] ,
. datetimepicker table tr td. active. disabled[ disabled] ,
. datetimepicker table tr td. active. disabled: hover[ disabled] {
background- color: #0044 cc;
}
. datetimepicker table tr td. active: active,
. datetimepicker table tr td. active: hover: active,
. datetimepicker table tr td. active. disabled: active,
. datetimepicker table tr td. active. disabled: hover: active,
. datetimepicker table tr td. active. active,
. datetimepicker table tr td. active: hover. active,
. datetimepicker table tr td. active. disabled. active,
. datetimepicker table tr td. active. disabled: hover. active {
background- color: #003399 \9 ;
}
. datetimepicker table tr td span {
display: block;
width: 23 % ;
height: 54 px;
line- height: 54 px;
float : left;
margin: 1 % ;
cursor: pointer;
- webkit- border- radius: 4 px;
- moz- border- radius: 4 px;
border- radius: 4 px;
}
. datetimepicker . datetimepicker- hours span {
height: 26 px;
line- height: 26 px;
}
. datetimepicker . datetimepicker- hours table tr td span. hour_am,
. datetimepicker . datetimepicker- hours table tr td span. hour_pm {
width: 14.6 % ;
}
. datetimepicker . datetimepicker- hours fieldset legend,
. datetimepicker . datetimepicker- minutes fieldset legend {
margin- bottom: inherit;
line- height: 30 px;
}
. datetimepicker . datetimepicker- minutes span {
height: 26 px;
line- height: 26 px;
}
. datetimepicker table tr td span: hover {
background: #eeeeee;
}
. datetimepicker table tr td span. disabled,
. datetimepicker table tr td span. disabled: hover {
background: none;
color: #999999 ;
cursor: default ;
}
. datetimepicker table tr td span. active,
. datetimepicker table tr td span. active: hover,
. datetimepicker table tr td span. active. disabled,
. datetimepicker table tr td span. active. disabled: hover {
background- color: #006 dcc;
background- image: - moz- linear- gradient ( top, #0088 cc, #0044 cc) ;
background- image: - ms- linear- gradient ( top, #0088 cc, #0044 cc) ;
background- image: - webkit- gradient ( linear, 0 0 , 0 100 % , from ( #0088 cc) , to ( #0044 cc) ) ;
background- image: - webkit- linear- gradient ( top, #0088 cc, #0044 cc) ;
background- image: - o- linear- gradient ( top, #0088 cc, #0044 cc) ;
background- image: linear- gradient ( top, #0088 cc, #0044 cc) ;
background- repeat: repeat- x;
filter: progid: DXImageTransform. Microsoft. gradient ( startColorstr= '#0088cc' , endColorstr= '#0044cc' , GradientType= 0 ) ;
border- color: #0044 cc #0044 cc #002 a80;
border- color: rgba ( 0 , 0 , 0 , 0.1 ) rgba ( 0 , 0 , 0 , 0.1 ) rgba ( 0 , 0 , 0 , 0.25 ) ;
filter: progid: DXImageTransform. Microsoft. gradient ( enabled= false) ;
color: #fff;
text- shadow: 0 - 1 px 0 rgba ( 0 , 0 , 0 , 0.25 ) ;
}
. datetimepicker table tr td span. active: hover,
. datetimepicker table tr td span. active: hover: hover,
. datetimepicker table tr td span. active. disabled: hover,
. datetimepicker table tr td span. active. disabled: hover: hover,
. datetimepicker table tr td span. active: active,
. datetimepicker table tr td span. active: hover: active,
. datetimepicker table tr td span. active. disabled: active,
. datetimepicker table tr td span. active. disabled: hover: active,
. datetimepicker table tr td span. active. active,
. datetimepicker table tr td span. active: hover. active,
. datetimepicker table tr td span. active. disabled. active,
. datetimepicker table tr td span. active. disabled: hover. active,
. datetimepicker table tr td span. active. disabled,
. datetimepicker table tr td span. active: hover. disabled,
. datetimepicker table tr td span. active. disabled. disabled,
. datetimepicker table tr td span. active. disabled: hover. disabled,
. datetimepicker table tr td span. active[ disabled] ,
. datetimepicker table tr td span. active: hover[ disabled] ,
. datetimepicker table tr td span. active. disabled[ disabled] ,
. datetimepicker table tr td span. active. disabled: hover[ disabled] {
background- color: #0044 cc;
}
. datetimepicker table tr td span. active: active,
. datetimepicker table tr td span. active: hover: active,
. datetimepicker table tr td span. active. disabled: active,
. datetimepicker table tr td span. active. disabled: hover: active,
. datetimepicker table tr td span. active. active,
. datetimepicker table tr td span. active: hover. active,
. datetimepicker table tr td span. active. disabled. active,
. datetimepicker table tr td span. active. disabled: hover. active {
background- color: #003399 \9 ;
}
. datetimepicker table tr td span. old {
color: #999999 ;
}
. datetimepicker th. switch {
width: 145 px;
}
. datetimepicker thead tr: first- child th,
. datetimepicker tfoot tr: first- child th {
cursor: pointer;
}
. datetimepicker thead tr: first- child th: hover,
. datetimepicker tfoot tr: first- child th: hover {
background: #eeeeee;
}
. input- append. date . add- on i,
. input- prepend. date . add- on i {
cursor: pointer;
width: 14 px;
height: 14 px;
}
2.在bootstrap-editable.js文件尾部写入
! function ( $ ) {
function UTCDate ( ) {
return new Date ( Date. UTC. apply ( Date, arguments) ) ;
}
function UTCToday ( ) {
var today = new Date ( ) ;
return UTCDate ( today. getUTCFullYear ( ) , today. getUTCMonth ( ) , today. getUTCDate ( ) , today. getUTCHours ( ) , today. getUTCMinutes ( ) , today. getUTCSeconds ( ) , 0 ) ;
}
var Datetimepicker = function ( element, options) {
var that = this;
this. element = $( element) ;
this. language = options. language || this. element. data ( 'date-language' ) || "en" ;
this. language = this. language in dates ? this. language : "en" ;
this. isRTL = dates[ this. language] . rtl || false;
this. formatType = options. formatType || this. element. data ( 'format-type' ) || 'standard' ;
this. format = DPGlobal. parseFormat ( options. format || this. element. data ( 'date-format' ) || DPGlobal. getDefaultFormat ( this. formatType, 'input' ) , this. formatType) ;
this. isInline = false;
this. isVisible = false;
this. isInput = this. element. is ( 'input' ) ;
this. component = this. element. is ( '.date' ) ? this. element. find ( '.add-on .icon-th, .add-on .icon-time, .add-on .icon-calendar' ) . parent ( ) : false;
this. componentReset = this. element. is ( '.date' ) ? this. element. find ( '.add-on .icon-remove' ) . parent ( ) : false;
this. hasInput = this. component && this. element. find ( 'input' ) . length;
if ( this. component && this. component. length == = 0 ) {
this. component = false;
}
this. linkField = options. linkField || this. element. data ( 'link-field' ) || false;
this. linkFormat = DPGlobal. parseFormat ( options. linkFormat || this. element. data ( 'link-format' ) || DPGlobal. getDefaultFormat ( this. formatType, 'link' ) , this. formatType) ;
this. minuteStep = options. minuteStep || this. element. data ( 'minute-step' ) || 5 ;
this. pickerPosition = options. pickerPosition || this. element. data ( 'picker-position' ) || 'bottom-right' ;
this. showMeridian = options. showMeridian || this. element. data ( 'show-meridian' ) || false;
this. initialDate = options. initialDate || new Date ( ) ;
this. _attachEvents ( ) ;
this. formatViewType = "datetime" ;
if ( 'formatViewType' in options) {
this. formatViewType = options. formatViewType;