2011-02-08 3 views
0

다양한 유형의 내 페이지에 여러 가지 ASP.NET 유효성 검사기가 있습니다. 그 중 일부는 javascript를 사용하여 페이지의 사용자 선택에 따라 사용하지 않도록 설정되어 있습니다.CustomValidator 문제

$.each(Page_Validators, function(index, validator) 
     { 
      if ($(validator).hasClass("pain")) { 

       ValidatorEnable(validator, false); 

     } 
}); 

이 작동하고 검증 나는 다른 검증 유형

<asp:CheckBoxList id="BodyPartsList" runat="server" RepeatColumns = "2" 
        Width="1023px"> 
        <asp:ListItem Text = "0. Head/headaches" Value = "1"></asp:ListItem> 
        <asp:ListItem Text = "1. Leg(s)" Value = "2"></asp:ListItem> 
        <asp:ListItem Text = "2. Arm(s)" Value = "3"></asp:ListItem> 
        <asp:ListItem Text = "3. Neck" Value = "4"></asp:ListItem> 
        <asp:ListItem Text = "4. Shoulder(s)" Value = "5"></asp:ListItem> 
        <asp:ListItem Text = "5. Low Back" Value = "6"></asp:ListItem> 
        <asp:ListItem Text = "6. Upper Back" Value = "7"></asp:ListItem> 
        <asp:ListItem Text = "7. Feet" Value = "8"></asp:ListItem> 
        <asp:ListItem Text = "8. Hand(s)" Value = "9"></asp:ListItem> 
        <asp:ListItem Text = "9. Other(Describe in &quot;Details of Plan&quot;)" Value = "10"></asp:ListItem> 
       </asp:CheckBoxList> 

       <asp:CustomValidator ID="PainLocationValidator" runat="server" Display="Dynamic" 
       ErrorMessage="Location of pain is required." 
       ClientValidationFunction="checkPainListValidate" 
       ValidationGroup = "OnSave" EnableClientScript= "true" SetFocusOnError= "true" Width = "100%" CssClass = "pain" /> 



function checkPainListValidate(sender, args) { 

    args.IsValid = true; 

    if ($('#<%= BodyPartsList.ClientID %> input:checked').length > 0) 
     args.IsValid = true; 

    else 
     args.IsValid = false; 

} 

왜 이런 일이 사용할 수 없습니다 때마다 내가 사용하고있는 CustomValidators를 제외한 모든 경우에 발생하지 않는 것 같다? 저 또한 그들을 무능하게하기 위하여 할 수있는 다른 것이 있습니까?

감사합니다.

답변

0

일부 영문 마크 업 도움이 될 것입니다 만, 어쨌든 여기에 몇 가지 아이디어가 있습니다 :

  • 당신이 당신의 유효성 검사기가 null 또는 validatorEnable 대신 ValidatorEnable의 같은 유형이있는 경우, 무슨 일이 일어나고 있는지 볼 수있는 자바 스크립트 디버깅이 ? 자바 스크립트 오류가 발생합니까?
  • 는 직접 CustomValidator가 서버 -에 대한 유효성을 검사 또는 클라이언트 측에, 난, 상관없이 당신이 ControlToValidate의 직접 CustomValidator 모든 게시에 대한 유효성을 검사를 지정 해달라고하면 ValidatorEnable는
  • 사실
  • EnableClientScript 설정 클라이언트 측에 사용하지 않도록 것이라고 생각합니까 원인이 된 이벤트
  • ClientValidationFunction을 고객 측에 요청 했습니까? 그런데, 어떤 브라우저와 어떤 프레임 워크를 사용하고 있습니까? ASP.Net-Ajax입니까?
  • document.getElementById('<%=MyValidator.ClientID %>').disabled=true;을 통해 사용을 중지하려고 했습니까?

잘못된 ID를 사용하여 클라이언트 측에서 유효성 검사기를 사용한다고 가정합니다. 난 당신의 코드를 테스트하고이 문제를 재현 할 수

:

이 (계정으로 고통 수준을 편집하여) 모든 검증하지 않으려면 내 자바 스크립트 함수 : 대한

function disablePainValidators() { 
    if ((typeof (Page_Validators) != "undefined") && (Page_Validators != null)) { 
     var i; 
     for (i = 0; i < Page_Validators.length; i++) { 
      if(Page_Validators[i].className=='pain') 
       ValidatorEnable(Page_Validators[i], false); 
     } 
    } 
} 
+0

감사합니다 답장 및 유용한 아이디어 1. 나는 제 1의 생각을 undestand하지 않았다. 2. 나는 ClientValidationFunction을 사용하여 클라이언트 측에서 유효성을 검증하고있다. 업데이트를 보라. 3. ControlToValidate는 체크 박스 목록이므로 지정하지 않았다. 그렇게. 4. 유효성 검사기를 사용하지 않으면 모든 포스트 백에서 유효성 검사가 계속됩니까? – Victor

+0

@Victor : 포인트 1은 내가 부분적으로 삭제 한 오타였습니다 (ValidateEmptyText를 true로 설정하지 않으면 빈 텍스트가 유효하지 않습니다.하지만이 점이 도움이되지 않습니다). 유효성 검사기를 사용하지 않으려 고 생각 했으므로 다시 게시 할 때 유효성 검사를 요청하는 이유는 무엇입니까? Validator와 ClientValidationFunction을 비활성화하는 js 코드도 함께 표시하십시오. 무슨 일이 일어나는 지 보려면 js를 디버그하십시오. –

+0

@Tim 그렇습니다. 유효성 검사기를 사용하지 않으려 고합니다. 그래서 왜 여전히 활성 상태이고 포스트 백이 발생하지 않는지 궁금합니다. 이 클래스에는 여러 개의 유효성 검사기가 있으며 CustomValidator 만 활성 상태로 유지됩니다. – Victor