您如何验证两个 asp:FileUpload 实例以使用 jquery 验证文件?

Posted

技术标签:

【中文标题】您如何验证两个 asp:FileUpload 实例以使用 jquery 验证文件?【英文标题】:How do you validate two instances of asp:FileUpload to one to have a file using jquery validate? 【发布时间】:2018-02-18 13:59:54 【问题描述】:

我有两个文件上传器来上传 pdf 文件,但我不知道如何将验证限制为至少一个文件上传器。

 $(document).ready(function () 
        $('#form1').validate(
            rules: 
                FileTitle: 
                    required: true,
                    minlength: 2,
                ,
                FileDescription: 
            required: true,
            minlength: 2,
            
            ,
            messages: 

            ,
            errorPlacement: function (error, element) 

                    error.insertBefore(element);          
            
        );
    );
</script>

【问题讨论】:

你的页面中是否有两个 asp:FileUpload 控件?您是否要验证以限制仅在您的两个 asp:FileUpload 控件中上传 pdf 文件? 感谢您阅读我的问题。是的,我已经限制了文件类型和大小。我想要发生的是,如果至少应该使用一个 asp:FileUpload 来提交表单。 只需使用其他类型的验证,使用 If else 来检查天气,至少一个控件具有该文件。 @JINOSHAJI 如果您不介意,您能告诉我如何实现吗?我的 Jquery 游戏很弱。 【参考方案1】:

只需浏览下面的代码就会有所帮助。

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="CS.aspx.cs" Inherits="_Default" %>

<!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" >
<head id="Head1" runat="server">

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

    <title>Untitled Page</title>
<script type ="text/javascript">
    var validFilesTypes=["pdf"];
    function ValidateFile()
    
        var isValidFile2 = false;

        var isValidFile = false;
        var label = document.getElementById("<%=Label1.ClientID%>"); 


        var fileValue = $("#<%=FileUpload1.ClientID%>").val(); 
        var fileValue2 = $("#<%=FileUpload2.ClientID%>").val(); 
        if(fileValue=='' && fileValue2=='')
           alert("You should upload atleast one file."); 
           return false;
        
        console.log("file" );
        console.log("file"+fileValue2);
        if(fileValue!='') 
         

      var file = document.getElementById("<%=FileUpload1.ClientID%>"); 
      var path = file.value;
      var ext=path.substring(path.lastIndexOf(".")+1,path.length).toLowerCase();

      for (var i=0; i<validFilesTypes.length; i++)
       
        if (ext==validFilesTypes[i]) 
        
            isValidFile=true;
            break;
        
      



      
      if(fileValue2!='') 
         
       var file2 = document.getElementById("<%=FileUpload2.ClientID%>"); 

      var path2 = file2.value;
      var ext2=path2.substring(path2.lastIndexOf(".")+1,path2.length).toLowerCase();
      for (var i=0; i<validFilesTypes.length; i++)
       
        if (ext2==validFilesTypes[i]) 
        
            isValidFile2=true;
            break;
        
      



      

      if (isValidFile == false && isValidFile2 == false)
      
          alert("Invalid File. Please upload atleast one File with" +
              " extension:\n\n" + validFilesTypes.join(", ")); 
        label.style.color="red";
        label.innerHTML = "Invalid File. Please upload atleast one File with" + 
         " extension:\n\n"+validFilesTypes.join(", ");
         return false;
        


      return true;
     
</script> 
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:FileUpload ID="FileUpload1" accept="pdf/*.pdf" runat="server" />
         <asp:FileUpload ID="FileUpload2" accept="images/*" runat="server" />
        <asp:Button ID="btnUpload" runat="server" Text="Upload"  
           OnClientClick = "return ValidateFile()" OnClick="btnUpload_Click"  />
        <br />
        <asp:Label ID="Label1" runat="server" Text="" />
    </div>
    </form>
</body>
</html>

【讨论】:

这是您的预期输出吗? 我刚刚完成了测试。这超出了我的预期。感谢您提供限制上传文件的替代方法。非常感谢。

以上是关于您如何验证两个 asp:FileUpload 实例以使用 jquery 验证文件?的主要内容,如果未能解决你的问题,请参考以下文章

asp:FileUpload 控件在使用假输入时未获取文件值

服务器端FileUpload上传控件如何禁止手动输入并且不能粘贴.

C# asp:FileUpload上传文件使用JS实现预览效果

FileUpload:使用 JS 获取文件名不起作用

TSQL检查数据库实例在线

如何检查来自另一个 keycloak 实例 B 的身份验证 keycloak 实例 A 用户?