2012-03-06 24 views
4

JQueryを使用して、コンボボックスの選択値に応じてdivを表示/非表示にしています。この部分はうまく動作します。しかし、divを隠すとき、jquery関数はそのdivにある3つのRequiredFieldValidatorsも無効にする必要があります。私は、オンラインで探していたのだが、これは簡単に使用して達成することができるようだ:JQueryを使用してRequiredFieldValidatorsを無効にする

ValidatorEnable(ValidatorName, false); 

しかし、私はRequiredFieldValidatorsはまだdiv要素が隠されているにもかかわらず、エラーが表示され、何も動作、そのメソッドを使用してみてください。

は私のjQueryの機能:

<script type="text/javascript"> 
     $(document).ready(function() { 
      var det = $("#SponsorDetails"); 
      $(det).hide(); 
      var all = $("#AllDetails"); 
      $(all).hide(); 

      $("#<%=SelectAccount.ClientID %>").click(function() { 
       //hide social worker and sponsor stuff 
       var value = $("#<%=SelectAccount.ClientID %> option:selected").val(); 
       if (value == "Social_Worker") { 
        //show social worker stuff 
        $("#AllDetails").show("slow"); 
        $("#SponsorDetails").hide("slow"); 
        ValidatorEnable(document.getElementById("#<%=AddressValidator.ClientID %>"), false); 
        ValidatorEnable(document.getElementById("#<%=CityValidator.ClientID %>"), false); 
        ValidatorEnable(document.getElementById("#<%=CountryValidator.ClientID %>"), false); 

       } else if (value == "Sponsor") { 
        //show sponsor stuff 
        $("#AllDetails").show("slow"); 
        $("#SponsorDetails").show("slow"); 
        ValidatorEnable(document.getElementById("#<%=AddressValidator.ClientID %>"), true); 
        ValidatorEnable(document.getElementById("#<%=CityValidator.ClientID %>"), true); 
        ValidatorEnable(document.getElementById("#<%=CountryValidator.ClientID %>"), true); 

       } 
      }); 

     }); 


    </script> 

誰かが私が検証グループまたはカスタムバリデータを使用することができます示唆したが、使用してjQueryのは、単にはるかに簡単なようだが、それは動作しませんなぜ私は知りません。

答えて

3

あなたはjQueryをシンプルなjavascriptで理解しています。シンプルなjavascriptでは、要素idの前にシンボル#を使用していません。したがって、すべてgetElementById機能から削除しても機能します。

あなたが使用することはできません。この関数の戻りの使用からスローエラーが出るので、それらのリターンをチェックアウトしてgetElementByIdを呼び出すので、例

document.getElementById("<%=CountryValidator.ClientID %>") 

についてあなたが得るエラーです。

+0

感謝を使用して...再び実行のために手動でバリデータを有効にするには、次のコードスニペットを使用することができ、それが働きました! – Matt

0

あなたはjQueryの

ValidatorEnable($("[id$='RegularExpressionValidator4']")[0], true); 
+0

あなたが書いた回答の詳細を記入してください。他の人がそれをはっきりと理解するのに役立ちます – silwar

+0

これは、JREeryで再度使用するために有効なバリデータを手動で使用します。 –

関連する問題