2012-03-06 2 views
4

JQuery를 사용하여 콤보 상자의 선택한 값에 따라 div를 숨기거나 표시하고 있습니다. 이 부분은 잘 작동합니다. 그러나 div를 숨길 때 jquery 함수는 해당 div에있는 3 개의 RequiredFieldValidators도 비활성화해야합니다. 나는 온라인으로 찾아 봤는데이 쉽게 사용하여 수행 할 수있는 것 같다JQuery를 사용하여 RequiredFieldValidators를 비활성화하십시오.

ValidatorEnable(ValidatorName, false); 

를하지만 그 방법을 사용하려고 할 때, 아무것도 작동하지의 RequiredFieldValidators는 여전히 사업부가 숨겨진 경우에도 오류를 표시합니다.

내 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를 혼동했다. 간단한 자바 스크립트에서는 요소 id 앞에 # 기호를 사용하지 않습니다. 따라서 모든 getElementById 함수에서 제거하고 작동합니다. 예를

당신이 사용할 수 없습니다이 함수의 반환의 사용으로 던져 오류가 발생하므로, 이들의 반환을 확인 밖으로 getElementById를 호출하기 때문에 당신이 얻을 오류가
document.getElementById("<%=CountryValidator.ClientID %>") 

를 들어

.

+0

감사를 사용하여 ... 다시 실행 수동 검사기를 사용하려면 다음과 같은 코드를 사용할 수 있습니다, 그것은했다! – Matt

0

당신은 jQuery를

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

작성한 답변에 대한 자세한 내용을 제공해주십시오. 다른 사람들이 명확하게 이해할 수 있도록 도움이 될 것입니다. – silwar

+0

JQuery에서 다시 사용하기 위해 수동으로 유효성 검사기를 사용합니다. –

관련 문제