0

私はこれに似た設定をしています:

<asp:TextBox ID="txtEmail" runat="server"/>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
    ControlToValidate="txtEmail" ErrorMessage="Required field cannot be left blank."
    Display="Dynamic"/>

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
    ErrorMessage="Invalid email address."    ControlToValidate="txtEmail" 
    ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" 
    Display="Dynamic"/>

今、テキストボックスの値を変更するある種の js コードを実行しています。バリデーターを強制的に再度トリガーしたいと思います。私が使用している JS コードはモジュール化することを意図しているため、それがトリガーされたときに、コントロールにバリデーターがアタッチされているかどうかなど、検証グループの名前がわかりません。

私は使い終わった

Page_ClientValidate()

しかし、ページ自体には複数のバリデーターがあり、それらすべてが同時にポップアップすることは望ましくありません。

基本的な質問は、コントロールに「関連する」バリデーターのリストを取得し、入力を強制的に再検証する方法はありますか?

(明確にするために-上記のコードは、私の問題をよりよく説明するためのものです。実際に使用しているコードではありません)

4

1 に答える 1

1

電子メールバリデーターを検証グループ (「emailValidationGroup」など) に関連付けることができます。

<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
    ControlToValidate="txtEmail" ErrorMessage="Required field cannot be left blank."
    Display="Dynamic" ValidationGroup="emailValidationGroup"/>

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
    ErrorMessage="Invalid email address."    ControlToValidate="txtEmail" 
    ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" 
    Display="Dynamic" ValidationGroup="emailValidationGroup"/>

そして、次のように呼び出します。Page_ClientValidate("emailValidationGroup");

于 2013-07-03T13:31:33.287 に答える