Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript错误:无法获取';单击';指未定义的或空的引用_Javascript_C#_Jquery_Asp.net - Fatal编程技术网

Javascript错误:无法获取';单击';指未定义的或空的引用

Javascript错误:无法获取';单击';指未定义的或空的引用,javascript,c#,jquery,asp.net,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: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>
所有这些代码都以“Javascript错误:无法获取未定义或空引用的'click'属性”结尾


如何解决此问题?

您需要获取服务器控件的客户端id

document.getElementById("<%=upldExcelTemplate.ClientID%>").click();
document.getElementById(“”)。单击();
如果你想要它,jquery

$(#"<%=upldExcelTemplate.ClientID%>").get()[0].click();
$(#“”).get()[0]。单击();
upd:

<button onclick="fileBrowse('<%=FileUpload1.ClientID%>')">click</button>
<script>
    function fileBrowse(obj) {
        document.getElementById(obj).click();
    }
</script>
点击
函数文件浏览(obj){
document.getElementById(obj).click();
}

看起来山本哲也已经指出,Visible=false是错误的原因

因此,我将FileUpload控件放入一个div中,并显示为:none;具体如下:

<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;");
}

.没有{
显示:无
}
受保护的无效页面加载(对象发送方、事件参数e)
{
btnBrowse.Attributes.Add(“onclick”、“document.getElementById(““+upldExcelTemplate.ClientID+”))。单击();返回false;”;
}

你的ID不是你想象的那样-看看浏览器中的源代码,你会发现有两个同名函数出现了混乱,因为这可能意味着控件没有在客户端呈现,JS无法访问。尝试使用包含选择器的CSS类将控件隐藏在客户端
“display:none;”“
@brk没有两个同名函数。。。我向你们展示的是我试图让它工作的代码示例。。。其中有3个…@Fahmieyz:@brk在您的问题中提到
fileBrowse
函数以相同的名称声明了两次(我希望当前只设置了其中一个)。但问题很可能来自控件可见性而不是客户端ID。我是否可以编辑代码以便将其用作fileBrowse(obj)。。。我尝试使用document.getElementById(obj).click();where obj=“”但似乎我的服务器标签是错误的
<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;");
}