1

ASP.NETページのテキストボックスに次のHTMLがあるとします。

<div class="myClass">
    <asp:TextBox ID="txtMyTextBox" runat="server"></asp:TextBox>
</div>

このように、このページに必須のフィールドバリデーターを追加するのは簡単です。

<asp:RequiredFieldValidator ID="valMyTextBox" runat="server" ControlToValidate="txtMyTextBox" ErrorMessage="My Text Box is required."></asp:RequiredFieldValidator>

ただし、このテキストボックスが検証に失敗した場合は、HTMLを少し変更する必要があります。CSSクラスをDIVに追加する必要があります。したがって、ユーザーがこのフィールドを空白のままにすると、HTMLは次のようになります。

<div class="myClass error">
    <asp:TextBox ID="txtMyTextBox" runat="server"></asp:TextBox>
</div>

これは可能ですか?この特定のバリデーターコントロールが検証などに失敗した場合にのみ起動するコードを背後に記述する方法があるかどうかはわかりません。ページ全体が無効な場合に実行されるコードを記述できることはわかっています。しかし、このバリデーターが無効を返したときにこのコードを実行したいだけです。これが理にかなっていることを願っています。

Corey

4

3 に答える 3

0

OK、これを行う正確な方法はわかりませんが、これは役立つと思います

<div class=<%Response.Write(validateTextBox())%>>

テキストボックスに応じてクラスの名前を変更するために呼び出すサーバー上の関数

于 2011-03-16T19:51:20.587 に答える
0

実際、私は別の StackOverflow の質問で答えを見つけました。ここで確認できます: 失敗したフォーム検証のために周囲の DIV に追加の CSS クラスを追加するにはどうすればよいですか? .

于 2011-03-16T19:53:01.163 に答える
0

ポストバックなしでそれを行う別の方法は、デフォルトの asp.net 検証スクリプトをオーバーライドすることです。ここに例を投稿しました: https://stackoverflow.com/a/9857696/618044

于 2012-03-25T03:48:10.090 に答える