File tree Expand file tree Collapse file tree 2 files changed +30
-1
lines changed Expand file tree Collapse file tree 2 files changed +30
-1
lines changed Original file line number Diff line number Diff line change 10
10
v-on =" $listeners"
11
11
@click =" open"
12
12
@focus =" open" >
13
- <input v-if =" hiddenName" type =" hidden" :name =" hiddenName" :value =" value" >
13
+ <input v-if =" hiddenName" type =" hidden" :name =" hiddenName" :value =" value" @input = " setValue " >
14
14
<slot name =" after" ></slot >
15
15
<transition-group name =" vdatetime-fade" tag =" div" >
16
16
<div key =" overlay" v-if =" isOpen" class =" vdatetime-overlay" @click.self =" cancel" ></div >
@@ -209,6 +209,10 @@ export default {
209
209
}
210
210
211
211
return datetime .set ({ minute: roundedMinute })
212
+ },
213
+ setValue (event ) {
214
+ this .datetime = datetimeFromISO (event .target .value )
215
+ this .emitInput ()
212
216
}
213
217
}
214
218
}
Original file line number Diff line number Diff line change @@ -878,5 +878,30 @@ describe('Datetime.vue', function () {
878
878
} )
879
879
} )
880
880
} )
881
+
882
+ it ( 'should update datetime when hidden input changes' , function ( done ) {
883
+ const vm = createVM ( this ,
884
+ `<Datetime v-model="datetime" hidden-name="dt"></Datetime>` ,
885
+ {
886
+ components : { Datetime } ,
887
+ data ( ) {
888
+ return {
889
+ datetime : '2020-05-07T00:00:00.000Z'
890
+ }
891
+ }
892
+ } )
893
+
894
+ const newDate = '2020-06-08T00:00:00.000Z'
895
+ const hiddenInput = vm . $ ( '.vdatetime input[name=dt]' )
896
+
897
+ hiddenInput . value = newDate
898
+ hiddenInput . dispatchEvent ( new window . Event ( 'input' ) )
899
+
900
+ vm . $nextTick ( ( ) => {
901
+ expect ( vm . datetime ) . to . be . equal ( newDate )
902
+ expect ( hiddenInput . value ) . to . be . equal ( newDate )
903
+ done ( )
904
+ } )
905
+ } )
881
906
} )
882
907
} )
You can’t perform that action at this time.
0 commit comments