0

txtNumOfBooks次の3つのバリデーターに対して検証しているidを持つ1つのテキストボックスがあります:

<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtNumOfBooks" Display="Dynamic" ErrorMessage="Please enter the number of books" SetFocusOnError="True" CssClass="style4" ValidationGroup="CreateVac">
</asp:RequiredFieldValidator>

<asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" ControlToValidate="txtNumOfBooks" Display="Dynamic" ErrorMessage="Please enter the valid number" ValidationExpression="[0-9]\d*[0-9]" CssClass="style4" ValidationGroup="CreateVac">
</asp:RegularExpressionValidator>

<asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="txtNumOfBooks"
Display="Dynamic" ErrorMessage="Number of books in a book shelf should be in range 1-100"
MaximumValue="100" MinimumValue="1" Type="Integer" CssClass="style4" ValidationGroup="CreateVac">
</asp:RangeValidator>


ただし、テキストボックスに文字を入力すると、両方のメッセージが表示されます:

Please enter the valid number Number of books in a book shelf should be in range 1-100

範囲バリデータが正規表現バリデータ メッセージとともにエラー メッセージを表示しないようにするにはどうすればよいですか?

4

1 に答える 1

0

最後に、答えが見つかりました。不要な範囲バリデータ メッセージを削除する JavaScript 関数を追加する必要があります。関数は次のとおりです。

  function clearRangeMessagePosition() {
            if (document.getElementById('<%=RegularExpressionValidator1.ClientID %>').getAttribute('isValid') != true.toString()) {
                document.getElementById('<%=RangeValidator1.ClientID %>').innerText = "";
            }
            else {
                document.getElementById('<%=RangeValidator1.ClientID %>').innerText = "Please enter number of books in range 1-100";
            }
        }
于 2013-05-19T14:04:43.733 に答える