检测asp:FileUpload有一个使用Jquery的文件?

时间:2013-11-22 11:43:57

标签: c# javascript jquery asp.net

我正在使用asp.net文件上传

<asp:FileUpload ID="ImageUploader" runat="server"/>

我怎样才能检测到asp:FileUpload有一个使用Jquery的文件?

我这样做

$("#ctl00_MainContentPlaceHolder_UCUpdOrgProfile1_ImageUploader").change(function (e) {
alert("hello")
            });

但我不知道是否选择了任何文件。

2 个答案:

答案 0 :(得分:2)

检查 -

if (document.getElementById('<%= ImageUploader.ClientID %>').files.length === 0) 
{
   // File upload do not have file
}
else {
   // File upload has file
}

答案 1 :(得分:1)

有效答案,或自ASP 4+以来只将ClientIDMode设置为页面属性:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Default" ClientIDMode="Static" %>
  

ClientID值设置为ID属性的值。如果控件是命名容器,则该控件将用作其包含的任何控件的命名容器层次结构的顶部。   - reference

即。这将强制ASP遵守声明的ID,而不是生成“ctl00_”前缀或任何其他。 这很棒,因为它应用于整个页面和包含在其上的所有asp控件,没有额外的代码,没有黑客只是一个很棒的属性。

因此应用与@Microsoft_DN解决方案相同的逻辑,但使用静态ID。