的JavaScript的getElementById为ASP.NET控件返回null? [英] JavaScript getElementById for ASP.NET Control returns null?

查看:268
本文介绍了的JavaScript的getElementById为ASP.NET控件返回null?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用JavaScript和执行过程中出现我这个错误:

 微软JScript运行时错误:'的document.getElementById(...)'为空或不是对象

这是我的code:

 < ASP:内容ID =内容2ContentPlaceHolderID =ContentPlaceHolder1=服务器>
< SCRIPT LANGUAGE =JavaScript的类型=文/ JavaScript的>
    功能ConfirmTransfere(){
        如果(确认(系统的研究与开发不允许负库存,你想继续?)==真){
            的document.getElementById(btnAlelrt),点击()。        }
}
< / SCRIPT>
< ASP:的ScriptManager ID =ScriptManager1=服务器>
    < / ASP:ScriptManager的>
    < ASP:的UpdatePanel ID =uxContainer=服务器>
    <&的ContentTemplate GT;
 <表>
&所述; TR>
        &所述; TD>
        < ASP:按钮的ID =uxTransfer=服务器文本=传送的OnClick =uxTransfer_Click/>
        < ASP:按钮的ID =btnAlelrt=服务器文本=GetDetails的OnClick =btnAlelrt_Click/>
        < / TD>
        < / TR>
< /表>
    < /&的ContentTemplate GT;
<&触发器GT;
    < ASP:PostBackTrigger控件ID =uxTransfer/>
    < /触发器>
    < / ASP:的UpdatePanel> < / ASP:内容>


解决方案

 函数ConfirmTransfere(){
        如果(确认(系统的研究与开发不允许负库存,你想继续?)==真){
            的document.getElementById(btnAlelrt),点击()。        }

必须是这样的:

 函数ConfirmTransfere(){
        如果(确认(系统的研究与开发不允许负库存,你想继续?)==真){
            的document.getElementById('<%= btnAlert.ClientID%GT;')。点击();        }

问题是,你的按钮是一个ASP.Net控制和将产生它自己的客户端ID,这将是与您指定的ID不同。将在code <%= btnAlert.ClientID%方式> 将张贴生成的一个输出到浏览器

I use JavaScript and this error appears for me during execution:

Microsoft JScript runtime error: 'document.getElementById(...)' is null or not an object

this my code:

<asp:Content ID="content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<script language="javascript" type="text/javascript">
    function ConfirmTransfere() {
        if (confirm("Syatem not allow negative inventory, would you like to continue ?") == true) {
            document.getElementById("btnAlelrt").click();

        }       
}
</script>
<asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="uxContainer" runat="server">
    <ContentTemplate>
 <table> 
<tr>
        <td>
        <asp:Button ID="uxTransfer" runat="server" Text="Transfer" OnClick="uxTransfer_Click" /> 
        <asp:Button ID="btnAlelrt" runat="server" Text="GetDetails" OnClick="btnAlelrt_Click" />       
        </td>
        </tr>
</table>
    </ContentTemplate>
<Triggers>
    <asp:PostBackTrigger ControlID="uxTransfer" />    
    </Triggers>
    </asp:UpdatePanel>

 </asp:Content>

解决方案

This:

function ConfirmTransfere() {
        if (confirm("Syatem not allow negative inventory, would you like to continue ?") == true) {
            document.getElementById("btnAlelrt").click();

        }

needs to be this:

function ConfirmTransfere() {
        if (confirm("Syatem not allow negative inventory, would you like to continue ?") == true) {
            document.getElementById('<%=btnAlert.ClientID%>').click();

        }

The problem is that your button is an ASP.Net control and will generate it's own client id, which will be different from the ID you specified. putting in the code <%=btnAlert.ClientID%> Will post the generated one out to the browser.

这篇关于的JavaScript的getElementById为ASP.NET控件返回null?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆