2009-04-08 5 views
2

이 CustomValidator가 작동하지 않습니다. 몸에서ASP.NET CustomValidator 클라이언트 쪽

<script language="javascript" type="text/javascript"> 
    function ValidateFile(sender, args){ 
     alert("Hi"); 

     args.IsValid = document.getElementById("fuFile").value != "" || 
        document.getElementById("c101_c7").value != ""; 
    } 
</script> 

: 다음는 FileUpload 또는 텍스트 상자 중 하나가 채워해야하는 경우

<asp:FileUpload ID="fuFile" runat="server" size="70"/> 
<asp:TextBox ID="c101_c7" class="textbox" runat="server"/> 
<asp:CustomValidator ID="vldFile" runat="server" ClientValidationFunction="ValidateFile" 
    ErrorMessage="You must either upload a file or provide a URL of a file."></asp:CustomValidator> 

가 args.IsValid 무엇이 있어야 < 머리 >에서

?

답변

0

이것은 (당신이 생각하는 것보다 다르다 가능한 기반이기 때문에

document.getElementById("ctl00_ContentPlaceHolder1_fuFile").value 
2

정상적인 버튼을 사용하여 유효성 검사를 트리거하고 있습니까?

이 코드의 다른 곳에서 유효성 검사 그룹을 구현하고 있습니까?

+0

오 감사합니다! 단추에 유효성 검사 그룹이 있다는 것을 알지 못했습니다. 그러나 나는 아직도이 부분을 잘못 생각했다고 생각합니다. 올바른 방법을 알고 있습니까? args.IsValid = document.getElementById ("fuFile"). value! = ""|| document.getElementById ("c101_c7"). value! = ""; – Aximili

0

사용자 정의 유효성 검사기에서 ControlToValidate 속성을 설정해야합니다. 현재 유효성 검사기는 모든 컨트롤에 연결되어 있지 않습니다.

또한 마크 업 부분을 게시하지 않았지만 포스트 백을 수행하고 유효성 검사를 포스트 백의 일부로하는 컨트롤이 있어야합니다. 이를 위해 버튼이 작동합니다.

5

내가 실제로 코드 뒤에 컨트롤의 클라이언트 측 ID가 무엇인지 자바 스크립트 코드를 알려주지하는 것이 도움이 작동 무엇을 ASP .NET)을 수행하기로 결정 :

document.getElementById('<%=fuFile.ClientID %>'); 
3
<script type="text/javascript"> 
//<![CDATA[ 
    function validateField(sender, args) {   
     var regExp = /(^[a-zA-Z]{2,50})$/; 
     var val = document.getElementById(sender.controltovalidate).value; 
     args.IsValid = regExp.test(val); 
} 
//]]> 
</script> 
관련 문제