1

次のコードを使用して、ページ上のすべての無効なコントロールの背景色を変更しています。ただし、背景色が変更され、ユーザーがフィールドに正しい値を入力すると、ページが送信される前に、現在有効になっているフィールドの元の色に背景をリセットしたいですか? すべてのコントロールに 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();"/>    
4

1 に答える 1

2

あなたが投稿した JavaScript が機能しないと思いますか? 「これ」を changeColor() に渡してみましたか?

たとえば、OnClientClick="javascript:return changeColor(this);"

このようにして、コントロールへの参照が返され、その CSS プロパティを操作できるようになります。現時点では、この問題をシミュレートする時間はありませんが、これは私が頭の中で思いついたものでした。

于 2012-06-26T15:42:57.943 に答える