fix #7905 - time picker onblur issue
authorAlan <alan@roojs.com>
Fri, 17 Nov 2023 04:49:04 +0000 (12:49 +0800)
committerAlan <alan@roojs.com>
Fri, 17 Nov 2023 04:49:04 +0000 (12:49 +0800)
Roo/bootstrap/form/DateField.js
Roo/bootstrap/form/TimeField.js
roojs-bootstrap-debug.js
roojs-bootstrap.js

index d9f7c90..c93bf08 100644 (file)
@@ -578,6 +578,8 @@ Roo.extend(Roo.bootstrap.form.DateField, Roo.bootstrap.form.Input,  {
         this.picker().hide();
         this.viewMode = this.startViewMode;
         this.showMode();
+
+        this.inputEl().blur();
         
         this.fireEvent('hidepopup', this, this.date);
         
index 75bd32c..4a92cd8 100644 (file)
@@ -411,6 +411,8 @@ Roo.extend(Roo.bootstrap.form.TimeField, Roo.bootstrap.form.Input,  {
     {
         this.picker().hide();
         this.pop.hide();
+
+        this.inputEl().blur();
         
         this.fireEvent('hide', this, this.time);
     },
index a7d3d5b..f996fff 100644 (file)
@@ -23667,6 +23667,8 @@ Roo.extend(Roo.bootstrap.form.DateField, Roo.bootstrap.form.Input,  {
         this.picker().hide();
         this.viewMode = this.startViewMode;
         this.showMode();
+
+        this.inputEl().blur();
         
         this.fireEvent('hidepopup', this, this.date);
         
@@ -24717,6 +24719,8 @@ Roo.extend(Roo.bootstrap.form.TimeField, Roo.bootstrap.form.Input,  {
     {
         this.picker().hide();
         this.pop.hide();
+
+        this.inputEl().blur();
         
         this.fireEvent('hide', this, this.time);
     },
index 516705e..2fac2bd 100644 (file)
@@ -1003,7 +1003,7 @@ return;}this.picker().addClass('bottom');this.picker().setTop(this.inputEl().get
 },formatDate:function(A,B){return (!A||!(A instanceof Date))?A:A.dateFormat(B||this.format);},translateDate:function(A){switch(this.language){case 'zh_CN':return new Intl.DateTimeFormat('zh-CN',{year:'numeric',month:'long',day:'numeric'}).format(A);default:return this.formatDate(A);
 }},onFocus:function(){Roo.bootstrap.form.DateField.superclass.onFocus.call(this);this.showPopup();},onBlur:function(){Roo.bootstrap.form.DateField.superclass.onBlur.call(this);if(!this.readOnly){var d=this.inputEl().getValue();var A=this.parseDate(d);if(A){this.setValue(A);
 }else{this.setValue(this.getValue());}}this.hidePopup();},showPopup:function(){this.picker().show();this.update();this.place();this.fireEvent('showpopup',this,this.date);},hidePopup:function(){if(this.isInline){return;}this.picker().hide();this.viewMode=this.startViewMode;
-this.showMode();this.fireEvent('hidepopup',this,this.date);},onMousedown:function(e){e.stopPropagation();e.preventDefault();},keyup:function(e){Roo.bootstrap.form.DateField.superclass.keyup.call(this);this.update();},setValue:function(v){if(this.fireEvent('beforeselect',this,v)!==false){var d=this.parseDate(v);
+this.showMode();this.inputEl().blur();this.fireEvent('hidepopup',this,this.date);},onMousedown:function(e){e.stopPropagation();e.preventDefault();},keyup:function(e){Roo.bootstrap.form.DateField.superclass.keyup.call(this);this.update();},setValue:function(v){if(this.fireEvent('beforeselect',this,v)!==false){var d=this.parseDate(v);
 if(!d){this.date=this.viewDate=this.value=this.hiddenField.value='';if(this.rendered){this.inputEl().dom.value='';this.validate();}return;}d=new Date(d).clearTime();this.value=this.hiddenField.value=d.dateFormat('Y-m-d');v=this.translateDate(d);if(this.rendered){this.inputEl().dom.value=(v===null||v===undefined?'':v);
 this.validate();}this.date=new Date(d.getTime()-d.getTimezoneOffset()*60000);this.update();this.fireEvent('select',this,this.date);}},setRawValue:function(v){if(this.fireEvent('beforeselect',this,v)!==false){var d=this.parseDate(v);if(!d){this.date=this.viewDate=this.value=this.hiddenField.value='';
 if(this.rendered){this.inputEl().dom.value=(v===null||v===undefined?'':v);}return;}d=new Date(d).clearTime();this.value=this.hiddenField.value=d.dateFormat('Y-m-d');v=this.translateDate(d);if(this.rendered){this.inputEl().dom.value=(v===null||v===undefined?'':v);
@@ -1050,7 +1050,7 @@ A.dom.innerHTML='';A.createChild({tag:'tr',cn:[{tag:'td',cn:[{tag:'a',href:'#',c
 },place:function(){this.picker().removeClass(['bottom-left','bottom-right','top-left','top-right']);var A=['bottom'];if((Roo.lib.Dom.getViewHeight()+Roo.get(document.body).getScroll().top)-(this.inputEl().getBottom()+this.picker().getHeight())<0){A.pop();
 A.push('top');}A.push('right');if((Roo.lib.Dom.getViewWidth()+Roo.get(document.body).getScroll().left)-(this.inputEl().getLeft()+this.picker().getWidth())<0){A.pop();A.push('left');}this.picker().addClass(A.join('-'));var B=this;Roo.each(A,function(c){if(c=='bottom'){(function(){}
 ).defer(200);B.picker().alignTo(B.inputEl(),"tr-br",[0,10],false);return;}if(c=='top'){B.picker().alignTo(B.inputEl(),"br-tr",[0,10],false);return;}});},onFocus:function(){Roo.bootstrap.form.TimeField.superclass.onFocus.call(this);this.show();},onBlur:function(){Roo.bootstrap.form.TimeField.superclass.onBlur.call(this);
-this.hide();},show:function(){this.picker().show();this.pop.show();this.update();this.place();this.fireEvent('show',this,this.time);},hide:function(){this.picker().hide();this.pop.hide();this.fireEvent('hide',this,this.time);},setTime:function(){this.hide();
+this.hide();},show:function(){this.picker().show();this.pop.show();this.update();this.place();this.fireEvent('show',this,this.time);},hide:function(){this.picker().hide();this.pop.hide();this.inputEl().blur();this.fireEvent('hide',this,this.time);},setTime:function(){this.hide();
 this.setValue(this.time);this.fireEvent('select',this,this.time);},parseTime:function(A){if(!A){return false;}if(A instanceof Date){return A;}var v=Date.parseDate(A,'H:i:s');return (typeof(v)=='undefined')?false:v;},translateTime:function(A){switch(this.language){case 'zh_CN':return new Intl.DateTimeFormat('zh-CN',{hour:'numeric',minute:'numeric',hour12:true}
 ).format(A);default:return A.format(this.format);}},setValue:function(v){var t=this.parseTime(v);if(!t){this.time=this.value=this.hiddenField.value='';if(this.rendered){this.inputEl().dom.value='';this.validate();}return;}this.value=this.hiddenField.value=t.dateFormat('H:i:s');
 v=this.translateTime(t);if(this.rendered){this.inputEl().dom.value=(v===null||v===undefined?'':v);this.validate();}this.time=t;this.update();},setRawValue:function(v){var t=this.parseTime(v);if(!t){this.time=this.value=this.hiddenField.value='';if(this.rendered){this.inputEl().dom.value=(v===null||v===undefined?'':v);