【问题标题】:disabled=false does not work in typescript 2.1disabled=false 在 typescript 2.1 中不起作用
【发布时间】:2017-08-05 19:20:35
【问题描述】:

我正在尝试通过在 typescript 2.1 中获取元素 ID 来禁用字段。我在 typescript 1.5 的下面找到了这个语法。但它在 2.1 中不起作用。任何人都可以帮忙。

(document.getElementById('BenchForcastId_'+valueID)).disabled = false;

【问题讨论】:

    标签: angularjs typescript


    【解决方案1】:

    如果你的意思是“不起作用”,编译器会给你一个错误提示:

    “HTMLElement”类型上不存在“已禁用”属性

    那么这正是它所说的。为了解决这个问题,您可以将其转换为具有 disabled 属性的类型,例如:

    (document.getElementById('BenchForcastId_'+valueID) as HTMLButtonElement).disabled = false;
    

    如果您不知道类型(或可能有许多不同的类型)但确定它具有禁用属性,您可以强制转换为任何类型:

    (document.getElementById('BenchForcastId_'+valueID) as any).disabled = false;
    

    【讨论】:

    • 您好,感谢您的回复。它也没有抛出错误。但是上面的代码都没有帮助我。
    • 你能澄清一下你遇到了什么问题吗?
    • 我在表单字段中使用 Dev Extreme 框架。我有一个属性为 [disabled]="true" 的 dx-date-box 小部件。当我尝试在我的角度函数中实现您的代码时,它没有更改属性值也没有引发错误。
    • 尝试在 chrome 开发工具中打开你的页面,发现实际上有一个带有 'BenchForcastId_'+valueID 标识符的 dom 元素。您在这里使用的是纯 javascript - 如果它不起作用 - 这意味着文档中没有具有此类 id 的元素。
    • 你是对的。 Dev Extreme 日期框有不同的 ID。现在可以了。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2023-04-07
    • 2011-08-28
    • 2019-02-02
    • 1970-01-01
    • 2015-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多