在我的 ASP.NET Web 应用程序中,我有一些元素可能在代码隐藏中被禁用,而一些元素可能在 JavaScript 中被禁用。
对于代码隐藏元素,我只需使用以下 VB.NET 属性:
Me.element1.Enabled = False
对于动态元素,我使用以下 JavaScript 属性:
document.getElementById('" & Me.element2.ClientID & "').disabled = true;
我注意到的第一件事是更改 Enabled 属性不仅会添加disabled="disabled"
到标记中,还会将类从button
(我的按钮的皮肤类名称)更改为button aspNetDisabled
. 为了弥补这一点,我添加了以下附加的 JavaScript 行:
document.getElementById('" & Me.element2.ClientID & "').className = 'button aspNetDisabled';
(显然,这意味着如果/当我再次启用该元素时,我需要维护 className 属性,并且我需要确保我使用button
/ textbox
/etc。如果适用 - 对于奖励积分,如果您对此有任何建议,我会很高兴听到他们)
但是,我也注意到通过 JavaScript 生成的标记只是disabled=""
,而 ASP.NET Enabled 属性更改生成的标记是disabled="disabled"
.
我尝试摆弄 JavaScript 以将其更改为:
document.getElementById('" & Me.element2.ClientID & "').disabled = 'disabled';
但是,这似乎没有什么区别,属性仍然是空的。有趣disabled=true;
并且disabled='disabled';
似乎以相同的方式工作 - 我希望其中一个更正确(我现在坚持=true;
)。
在启用和禁用元素方面,是否有推荐的最佳方法使用 JavaScript 实现与服务器端 ASP.NET 相同的结果?
和...
渲染的区别disabled="disabled"
和disabled=""
可能给我带来什么问题吗?