次のコードを使用して、ページ上のすべての無効なコントロールの背景色を変更しています。ただし、背景色が変更され、ユーザーがフィールドに正しい値を入力すると、ページが送信される前に、現在有効になっているフィールドの元の色に背景をリセットしたいですか? すべてのコントロールに RequiredFieldValidators を使用しており、すべてのコントロールに同じ検証グループがあります (RequiredFieldValidator と RegularExpressionValidator の両方を持つ 1 つのコントロールを除く)。ありがとう!
function changeColor()
{
Page_ClientValidate();
var i;
var ctrl;
var prevColor;
for (i = 0; i < Page_Validators.length; i++) {
ctrl = document.getElementById(Page_Validators[i].controltovalidate);
prevColor = document.getElementById(Page_Validators[i].controltovalidate).style.backgroundColor;
if (!Page_Validators[i].isvalid)
ctrl.style.backgroundColor = '#FFAAAA';
else
ctrl.style.backgroundColor = prevColor;
}
}
上記の JavaScript を呼び出す方法は次のとおりです。
<asp:ImageButton AlternateText="Press btn"
ID="SaveButton"
runat="server"
ImageUrl="~/css/btnSave.png"
OnClick="btpress_Click"
OnClientClick="javascript:return changeColor();"/>