JavaScript 错误 : Unable to get property of 'click' of undefined or null reference

标签 javascript c# jquery asp.net

我的网站中有以下项目,其中有母版页;

<asp:Content ID="Content5" ContentPlaceHolderID="ContentPlaceHolder4" Runat="Server">
    <div class="div-data-upload">
        <asp:UpdatePanel ID="UpdatePanel2" runat="server">
            <Triggers>
                <asp:PostBackTrigger ControlID="btnUpload" />
            </Triggers>
            <ContentTemplate>
                <asp:FileUpload ID="upldExcelTemplate" runat="server" Visible="false" />
                <asp:TextBox ID="txtBrowse" runat="server"></asp:TextBox>
                <asp:Button ID="btnBrowse" CssClass="btn btn-default" runat="server" Text="Browse" />
                <asp:Button ID="btnUpload" CssClass="btn btn-default" runat="server" Text="Upload" OnClick="btnUpload_Click" />
                <asp:Button ID="btnSubmit" CssClass="btn btn-default" runat="server" Text="Submit" OnClick="btnSubmit_Click" Enabled="False" />
            </ContentTemplate>
        </asp:UpdatePanel>
    </div>
</asp:Content>

我的 FileUpload 项目隐藏的位置。这是因为我想使用 CSS 来设置 FileUpload 控件的样式。

为了调用upldExcelTemplate(FileUpload控件),我使用了以下代码但没有成功;

protected void Page_Load(object sender, EventArgs e)
{
    btnBrowse.Attributes.Add("onclick", "document.getElementById('" + upldExcelTemplate.ClientID + "').click(); return false;");
}

function fileBrowse(obj)
{
    document.getElementById(obj).click();
}

function fileBrowse()
{
    $('#upldExcelTemplate').click()
}

所有这些代码最终都会出现“Javascript 错误:无法获取未定义或空引用的“点击”属性”。

如何解决这个问题?

最佳答案

山本哲也指出,Visible=false是错误的原因......

所以我将 FileUpload 控件放入带有 display:none; 的 div 中如下;

<ContentTemplate>
    <div class="none">
        <asp:FileUpload ID="upldExcelTemplate" runat="server" />
    </div>
    <asp:TextBox ID="txtBrowse" runat="server"></asp:TextBox>
    <asp:Button ID="btnBrowse" CssClass="btn btn-default" runat="server" Text="Browse" />
    <asp:Button ID="btnUpload" CssClass="btn btn-default" runat="server" Text="Upload" OnClick="btnUpload_Click" />
    <asp:Button ID="btnSubmit" CssClass="btn btn-default" runat="server" Text="Submit" OnClick="btnSubmit_Click" Enabled="False" />
</ContentTemplate>

.none {
    display: none
}

protected void Page_Load(object sender, EventArgs e)
{
    btnBrowse.Attributes.Add("onclick", "document.getElementById('" + upldExcelTemplate.ClientID + "').click(); return false;");
}

关于JavaScript 错误 : Unable to get property of 'click' of undefined or null reference,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43463133/

相关文章:

java - 将 java 对象从 javascript 传递到 java

javascript - 有没有办法查看哪些函数/执行花费的时间最长?

c# - SyndicationFeed 内容 :encoded

c# - Visual Studio 扩展 : Change the hint path of an assembly reference

javascript - 使用 AJAX 检查远程站点是否在线?

javascript - 如何在 jQuery 中迭代 JSON 的嵌套数组?

javascript - Chrome 中的问题,使用 jQuery 删除 CSS 仍保留在 Chrome 中

javascript - 在js函数中,当你添加大括号然后结束函数时,它被称为什么?

c# - UNITY-仅更改 3D 模型颜色的某些部分

jQuery 验证插件 + equalTo 不工作