2015-05-01 6 views
3

Я использую машинописный шрифт для сброса формы, но он не работает или компилятор машинописного текста (версия 1.0.3) не распознает функцию reset(). Компилятор дает ошибкуСброс формы дескриптора() не работает

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

Это код машинопись

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

Когда я скопировал выше кода JS файл, он прекрасно работает.

В чем причина этого?

+1

Элемент обычно не имеет 'сброса()' функциональность, только элементы формы. Вы явно не говорите, что у вас есть элемент формы – devqon

+3

'var resetForm: HTMLFormElement = document.getElementById (dirtyFormID);'? – CodingIntrigue

ответ

11

Поскольку функция getElementById возвращает более общий тип HTMLElement вам нужно утверждать конкретную версию вручную:

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

это совсем не работает, получается ошибка «resetForm.reset не является функцией» –

0

Обратите внимание, что document.getElementById возвращается HTMLElement (как уже здесь говорилось). Вы должны отдать свой HTMLElement к HTMLFormElement

кастинге должен быть таким:

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

 Смежные вопросы

  • Нет связанных вопросов^_^