在我的ASP.NET Web應用程序中,我有一些可能在代碼隱藏中禁用的元素,並且可能會在JavaScript中禁用某些元素。JavaScript disabled = true vs ASP.NET Enabled = False
對於代碼隱藏的元素,我只需使用下面的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
/等適用 - 對於加分,如果你對此有任何建議,我會很高興聽到他們的聲音)
但是,我也注意到,通過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=""
可能引起我任何問題之間的區別?