2014-06-10 6 views
-2

ID가 "BACKGROUND"인 드롭 다운이 있는데 아무 것도 선택되지 않았거나 값이 다른 경우 클라이언트 측 유효성 검사 기능이 작동하지만 그렇지 않습니다. 내가 놓친 게 있니? 이 CustomValidator 클라이언트 기능이 실행되지 않는 이유는 무엇입니까?

나는 다음과 같은 클라이언트 측 기능이 있습니다

function cv26(oSrc, args) {//BACKGROUND,BG_OTHER 
      alert("cv26"); 
      var otherCtrl = document.getElementById("BG_OTHER"); 
      args.IsValid = (args.Value != " ") || (otherCtrl.value.length > 0); 
     } 

내 사용자 지정 유효성 검사기는 다음과 같습니다

<asp:CustomValidator ID="cv26" runat="server" ErrorMessage="26. Background is required." ControlToValidate="BACKGROUND" ClientValidationFunction="cv26" Display="Dynamic" ValidateEmptyText="true">*</asp:CustomValidator> 
+0

GridView 또는 ListView와 같은 데이터 바인딩 된 컨트롤에 'BG_OTHER' 요소가 있습니까? 아마도'document.getElementById ("BG_OTHER"); 행은 그것을 찾을 수 없기 때문에'null'을 반환 할 것입니다. –

+0

@MarioJVargas - 경고를 발사하기조차하지 않는다는 점을 지적 할 것이므로 그 시점까지 도달하지는 못합니다. – xaisoft

+0

유효성 검사 함수 이름이 다릅니다 ... js의 이름은 cv26이고 customValidator의 이름은 val_cv26입니다. –

답변

0

문제 # 1 : 함수 이름이

ClientValidationFunction가하는 일치하지 않습니다 함수 이름과 일치하지 않습니다.

javascript에서 함수 cv26을 선언하지만 CustomValidator에 ClientValidationFunction에 대해 val_cv26이 있어야합니다. 그래서 당신은 val_cv26에 자바 스크립트 함수를 변경하거나 cv26

문제 # 2에 ClientValidationFunction을 변경 중 하나를 검증 그룹

을 원래 코드에서 어떤 검증 그룹을 지정하지 않았습니다. CustomValidatorButton2은 모두 ValidationGroup = "hi"입니다. 이들은 동일한 유효성 검증 그룹에 속해야합니다. 예를 들어 버튼이 여러 개 있고 버튼 중 하나에서 사용자 입력의 유효성을 검사하려는 경우 유효성 검사 그룹이 필요합니다. ONE 버튼 만있는 경우 문제가되지 않습니다.

ASPX :

<asp:DropDownList ID="BACKGROUND" runat="server"> 
    <asp:ListItem Text=" --- SELECT ---" Value=""></asp:ListItem> 
    <asp:ListItem Text="A"></asp:ListItem> 
    <asp:ListItem Text="B"></asp:ListItem> 
    <asp:ListItem Text="C"></asp:ListItem> 
</asp:DropDownList> 

<asp:CustomValidator ID="cv26" runat="server" 
        ErrorMessage="26. Background is required." 
        ControlToValidate="BACKGROUND" 
        ClientValidationFunction="cv26" 
        Display="Dynamic" ValidateEmptyText="true" 
        ValidationGroup="hi">*</asp:CustomValidator> 

<asp:Button ID="Button1" runat="server" 
      Text="Submit" onclick="Button1_Click" 
      ValidationGroup="hi" /> 

자바 스크립트 : 유효성 검사를 발사 할 것으로 예상된다

function cv26(oSrc, args) { 
    args.IsValid = (args.Value != ""); 
} 
  • ?
  • 배경에 대한 선언을 제공하십시오
  • BG_Other에 대한 선언을 제공하십시오 동일한 ASPX 페이지의 배경과 BG_OTHER 있습니까?
+0

여전히 작동하지 않습니다. – xaisoft

+0

답변을 업데이트했습니다. 이것은 저를 위해 일하는 예입니다. –

+0

유효성 검사 그룹을 추가하려고합니다. 컨트롤 중 아무 것도 필요하지 않습니까? – xaisoft

0

문제는 ClientValidationFunction의 값입니다. 이 val_cv26

변경을 찾을 수는 ClientValidationFunction="cv26"를해야이 :

<asp:CustomValidator ID="cv26" runat="server" 
    ErrorMessage="26. 
    Background is required." 
    ControlToValidate="BACKGROUND" 
    ClientValidationFunction="cv26" 
    Display="Dynamic" 
    ValidateEmptyText="true">*</asp:CustomValidator> 

또는 val_cv26에 자바 스크립트 함수의 이름을 변경 :

<asp:CustomValidator ID="cv26" runat="server" 
    ErrorMessage="26. 
    Background is required." 
    ControlToValidate="BACKGROUND" 
    ClientValidationFunction="val_cv26" 
    Display="Dynamic" 
    ValidateEmptyText="true">*</asp:CustomValidator> 

에.

+0

여전히 작동하지 않습니다. – xaisoft

+0

GridView 또는 ListView와 같은 데이터 바인딩 된 컨트롤에 'BG_OTHER' 요소가 있습니까? 자바 스크립트 오류가 발생하고 있습니까? (귀하의 웹 브라우저에서 Firefox 또는 Chrome에서 Firebug를 사용하는 경우 F12 키를 눌러 개발자 콘솔을여십시오.) 이전 질문은 JavaScript가 요소를 찾지 못한다는 힌트 일 수 있으므로 알아 두는 것이 중요합니다. –