@@ -26,7 +26,7 @@ if(HTMLElement== undefined){
2626 console . error ( 'you cant render web component on a server side' ) ;
2727}
2828export class JBDateInputWebComponent extends HTMLElement {
29- static get formAssociated ( ) { return true ; }
29+ static formAssociated = true ;
3030 internals_ ?: ElementInternals ;
3131 elements ! : ElementsObject ;
3232 #dateFactory: DateFactory = new DateFactory ( { inputType : ( this . getAttribute ( "value-type" ) as InputTypes ) , valueType : this . getAttribute ( "value-type" ) as ValueTypes } ) ;
@@ -45,16 +45,23 @@ export class JBDateInputWebComponent extends HTMLElement {
4545 required = false ;
4646 DefaultValidationErrorMessage = "مقدار وارد شده نا معتبر است"
4747 #valueObject: JBDateInputValueObject = getEmptyValueObject ( ) ;
48+ get name ( ) { return this . getAttribute ( 'name' ) ; }
49+ get form ( ) { return this . internals_ ! . form ; }
4850 get value ( ) : string {
4951 const value = this . getDateValue ( ) ;
5052 return value ;
5153 }
5254 set value ( value : string ) {
53- if ( this . internals_ && typeof this . internals_ . setFormValue == "function" ) {
54- this . internals_ . setFormValue ( value ) ;
55- }
55+
5656 this . setDateValue ( value ) ;
5757 this . updateinputTextFromValue ( ) ;
58+ this . #updateFormAssossicatedValue( ) ;
59+ }
60+ #updateFormAssossicatedValue( ) :void {
61+ //in html form we need to get date input value in native way this function update and set value of the input so form can get it when needed
62+ if ( this . internals_ && typeof this . internals_ . setFormValue == "function" ) {
63+ this . internals_ . setFormValue ( this . value ) ;
64+ }
5865 }
5966 get inputValue ( ) {
6067 return this . #inputValue;
@@ -609,6 +616,7 @@ export class JBDateInputWebComponent extends HTMLElement {
609616 this . setDateValueFromTimeStamp ( value ) ;
610617 break ;
611618 }
619+ this . #updateFormAssossicatedValue( ) ;
612620
613621 }
614622 setValueObjNull ( ) {
@@ -679,6 +687,7 @@ export class JBDateInputWebComponent extends HTMLElement {
679687 const result : JBDateInputValueObject = this . #dateFactory. getDateValueObjectBaseOnInputType ( year , month , day , prevYear , prevMonth ) ;
680688 this . #valueObject = result ;
681689 this . updateCalendarView ( ) ;
690+ this . #updateFormAssossicatedValue( ) ;
682691 }
683692 updateinputTextFromValue ( ) {
684693 let str = this . inputFormat ;
0 commit comments