Web アプリケーションがあり、その中でクライアント側の検証を行っています。これは、各 Asp:TextBox に追加することによって行われます
onkeyup="javascript: value_change(this);"
これが値の変更になると、私はこのJavascriptを持っています...
function value_change (text_box) {
// validate code here
if (valid) {
text_box.className = "normalInput";
document.getElementById("GoButton").disabled = false;
}
else {
text_box.className = "errorInput";
document.getElementById("GoButton").disabled = true;
}
}
className は、顕著な部分が次のように見える CSS クラスに対応します。
.normalInput
{
background-color: #ffffff;
}
.errorInput
{
background-color: #ff0000;
}
これは、ページが最初に表示されたときはうまく機能しますが、最初のポストバックの後、関数が呼び出され、クラス名が設定され、GoButton の感度が設定されますが (デバッグでステップスルーすることでこれを実証しました)、背景色は機能しません。変化する。
これがなぜなのか、私が何をすべきか知っている人はいますか?
@Pete のアドバイスを受けて編集し、新しいクラス名が割り当てられた直後に text_box を調べたところ、 currentStyle 属性は変更されていないようです。currentStyle の特性は normalInput クラスと同じです。私はそれらを微調整し、再実行して確認しました。したがって、別のCSSが何らかの形で機能しているのではなく、割り当てが無視されていると推測します。