2012-11-12 58 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);