Javascript Typescript表单重置()不工作
我正在使用typescript重置窗体,但它不工作,或者typescript编译器(1.0.3版本)无法识别reset()函数。 编译器给出错误Javascript Typescript表单重置()不工作,javascript,typescript,typescript1.4,Javascript,Typescript,Typescript1.4,我正在使用typescript重置窗体,但它不工作,或者typescript编译器(1.0.3版本)无法识别reset()函数。 编译器给出错误 Build: Interface 'HTMLFormElement' incorrectly extends interface 'HTMLElement'. C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.4\lib.d.ts 这是typescript代码 var resetForm =docu
Build: Interface 'HTMLFormElement' incorrectly extends interface 'HTMLElement'. C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.4\lib.d.ts
这是typescript代码
var resetForm =document.getElementById(dirtyFormID);
resetForm.reset();
当我将上述代码复制到js文件时,它工作得非常好
原因是什么?由于函数
getElementById
返回一个更通用的类型HTMLElement
,您需要手动断言特定的版本:
var dirtyFormID = 'something';
var resetForm = <HTMLFormElement>document.getElementById(dirtyFormID);
resetForm.reset();
var dirtyFormID='something';
var resetForm=document.getElementById(dirtyFormID);
resetForm.reset();
请注意
document.getElementById
返回HTMLElement
(就像这里已经说过的那样)。
您应该将HTMLElement
强制转换为HTMLFormElement
铸件应如下所示:
var resetForm:HTMLFormElement;
resetForm= <HTMLFormElement>document.getElementById('your form id');
if(resetForm)
resetForm.reset();
var resetForm:HTMLFormElement;
resetForm=document.getElementById(“您的表单id”);
如果(重置表格)
resetForm.reset();
使用typescript
为了避免Google Chrome出现错误“resetForm.reset不是函数”,我在HTML代码中指定了按钮元素的类型“reset”。指定了一个:
type = 'reset'
“使我的函数工作得很好。元素通常没有
reset()
功能,只有表单元素。您没有明确地说您有一个表单元素var resetForm:HTMLFormElement=document.getElementById(dirtyFormID)代码>?它根本不工作,出现错误“resetForm.reset不是函数”