2012-11-12 4 views
1

jQuery Multiple File Upload을 사용하려하지만 유효성 검사에 문제가 있습니다. 유효성 검사가 실행 된 후 파일 업로드 컨트롤이 비활성화되고 이유를 파악할 수 없습니다. 나는 그 문제를 설명하기 위해 여기 최소한의 것을 재현했다.jQuery MultFile 업로드가 업로드 버튼을 비활성화합니다.

<%@ Page Language="C#" AutoEventWireup="true"%> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<script language="c#" runat="server"> 
    protected void validate(object source, ServerValidateEventArgs args) 
    { 
     args.IsValid = false; 
    } 
</script> 
<head runat="server"> 
    <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script> 
    <script src="Scripts/jquery.MultiFile.js" type="text/javascript"></script> 
    <script language="javascript" type="text/javascript"> 
     function validate(sender, args) 
     { 
      args.IsValid = false; 
      //addedd as suggested on the following, but it doesn't work 
      //fyneworks.com/jquery/multiple-file-upload/#tab-Uploading 
      $.fn.MultiFile.reEnableEmpty(); 
     } 
    </script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
     <asp:FileUpload ID="attachments" runat="server" class="multi" /> 
     <asp:CustomValidator runat="server" ID="customValidator" 
          ErrorMessage="This field is required" 
          OnServerValidate="validate" 
          ClientValidationFunction="validate" /> 
     <br /> 
     <asp:Button ID="Button1" runat="server" Text="Submit" /> 
    </form> 
</body> 
</html> 
+0

나는이 문제를 해결할 수 있습니까? –

+0

나는 그것을 수동으로 다시 활성화시킴으로써 꽤 진절머리 나는 방식으로 해결했다. setTimeout (function() {$ (questionNode) .find ('> .answer> div> .MultiFile-wrap> .multi'). removeAttr ('disabled');}, 200); – PBG

답변

0

이 문제를 해결하는 방법을 알아내는 유일한 방법은 단추를 수동으로 다시 사용하는 것입니다. 코드가 실행되기 전에 모든 작업이 완료되었는지 확인하기 위해 시간 제한을 추가했습니다.

setTimeout(function() { $(questionNode).find('> .answer > div > .MultiFile-wrap > .multi').removeAttr('disabled');}, 200);