私の 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. を使用するようにする必要があります。ボーナス ポイントについては、これに関する推奨事項があれば、聞いてくれると嬉しいです)
disabled=""ただし、JavaScriptによって生成されるマークアップは のみであるのに対し、ASP.NET Enabled プロパティの変更によって生成されるマークアップは であることにも気付きましたdisabled="disabled"。
JavaScript をいじって次のように変更してみました。
document.getElementById('" & Me.element2.ClientID & "').disabled = 'disabled';
ただし、属性がまだ空であるため、これは違いを生むようには見えませんでした。興味深いことにdisabled=true;、disabled='disabled';同じように機能するようです-そのうちの1つがより正しいと思います(=true;今のところ固執しています)。
要素の有効化と無効化に関して、サーバー側の ASP.NET と同じ結果を JavaScript で実現するための推奨される最良の方法はありますか?
と...
disabled="disabled"とのレンダリングの違いによってdisabled=""問題が発生する可能性はありますか?