0

カスタムバリデーターコードがあります

<asp:CustomValidator ID="ddl1" ClientValidationFunction="IscontrolVisible" ControlToValidate="ddl1"
                            runat="server" ValidationGroup="ValSummary" Display="Dynamic" ErrorMessage="drop down invisible">*</asp:CustomValidator>

以下は機能です

 function IscontrolVisible(source, arguments) {
        //if ((document.getElementById(source).visibility == "visible")) {
        debugger;
        if (arguments.value == "" || arguments.value == "Select...") {
            arguments.IsValid = false;
        }
        else {
            arguments.IsValid = true;
        }
    }

コントロールの可視性に基づいてエラーメッセージを取得するにはどうすればよいですか?

4

1 に答える 1

0

プロパティを使用しsource.controltovalidateて検証中のコントロールの ID を取得するためdocument.getElementById(source.controltovalidate)、コードで使用します。

ただし、コントロール自体の可視性直接設定している場合にのみ、検証しているコントロールが可視かどうかを検出できます

その場合、次のいずれかのようなことができます...

if (document.getElementById(source.controltovalidate).style.visibility !== "false") {
if (document.getElementById(source.controltovalidate).style.display !== "none") {

visibility親コントロールのいずれかが原因でコントロールが表示されない場合、またはの CSS スタイルを継承しませんdisplay。その場合、問題のコントロールのすべての祖先を再帰的にチェックする必要があります。

追加

ErrorMessage テキストを変更する場合 (これはブラウザ上でローカルにのみ変更され、ポストバック後にサーバーに複製されることはないことに注意してください)、検証概要メッセージ ボックスのポップアップとリスト/箇条書きに対して次のように動作するはずです。 ...

source.errormessage = "New Error Message";

そして、バリデーター自体の一部として表示される場合、以下はメッセージに対して機能するはずです...

source.innerHTML = "New Error Message";
于 2012-08-08T15:25:19.957 に答える