add form
This commit is contained in:
		
							
								
								
									
										27
									
								
								src/form/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								src/form/index.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | |||||||
|  | type FormValue<T = any> = {} & T; | ||||||
|  | class From<T = any> { | ||||||
|  |   formData: FormValue<T>; | ||||||
|  |   form: HTMLFormElement; | ||||||
|  |   constructor() { | ||||||
|  |     console.log('From'); | ||||||
|  |   } | ||||||
|  |   getValues() { | ||||||
|  |     return this.formData; | ||||||
|  |   } | ||||||
|  |   listen() { | ||||||
|  |     this.form.addEventListener('submit', this.handleSubmit.bind(this)); | ||||||
|  |   } | ||||||
|  |   handleSubmit(event: Event) { | ||||||
|  |     event.preventDefault(); | ||||||
|  |     const formData = new FormData(this.form); | ||||||
|  |     const values = Object.fromEntries(formData.entries()); | ||||||
|  |     // this.formData = values; | ||||||
|  |   } | ||||||
|  |   onChanges() { | ||||||
|  |     this.form.addEventListener('change', this.handleChange.bind(this)); | ||||||
|  |   } | ||||||
|  |   handleChange(event: Event) { | ||||||
|  |     const target = event.target as HTMLInputElement; | ||||||
|  |     this.formData[target.name] = target.value; | ||||||
|  |   } | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user