Typescript form reset() not working

匿名 (未验证) 提交于 2019-12-03 02:31:01

问题:

I'm using typescript to reset a form but it's not working or typescript compiler (1.0.3 version) doesn't recognize reset() function. Compiler gives Error

Build: Interface 'HTMLFormElement' incorrectly extends interface 'HTMLElement'. C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.4\lib.d.ts 

This is the typescript code

var resetForm =document.getElementById(dirtyFormID); resetForm.reset(); 

When I copied above code to js file, it's working perfectly.

What's the reason for it?

回答1:

Since the function getElementById returns a more generic type HTMLElement you need to assert the specific version manually :

var dirtyFormID = 'something'; var resetForm = <HTMLFormElement>document.getElementById(dirtyFormID); resetForm.reset(); 


回答2:

Please note that document.getElementById returns HTMLElement (like already said here). You should cast your HTMLElement to HTMLFormElement

The casting should be like this:

var resetForm:HTMLFormElement; resetForm= <HTMLFormElement>document.getElementById('your form id'); if(resetForm)     resetForm.reset(); 


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!