调用js报错 无法获取未定义或 null 引用的属性“click”


<head runat="server">
    <title>商品信息开窗</title>
<script language="javascript" type="text/javascript">  
function jiance() 
       {
           document.getElementById('ButtonCpf').click();
       }

</script>
</head>

<asp:TextBox ID="ddlzl" runat="server"  onpropertychange="jiance()"></asp:TextBox>
<asp:Button ID="ButtonCpf" runat="server" BorderStyle="None" Height="100px" onclick="ButtonCpf_Click" Width="100px" />

TextBox ID="ddlzl" 值发生改变的时候 没调用成功
错误: 无法获取未定义或 null 引用的属性“click”

我的窗口是用如下代码打开的
父窗口 window.showModalDialog(me, window, 'dialogWidth=' + width + 'px;dialogHeight=' + height + 'px;help:no;status:no')
 子窗口接收 document.getElementById("ddlzl").value = window.dialogArguments.document.getElementById("ctl00_ContentPlaceHolder1_drpzhonglei").value;  文本框属性改变后  onpropertychange触发jiance()

CS代码
  protected void ButtonCpf_Click(object sender, EventArgs e)
        {
            ScriptManager.RegisterClientScriptBlock(UpdatePanel1, this.GetType(), "click", "alert('当前单号不存在或已发货!');", true);
        }

3 个解决方案

#1


获取不到服务器端控件
你的<asp:Button ID="ButtonCpf" runat="server" BorderStyle="None" Height="100px" onclick="ButtonCpf_Click" Width="100px" />  为 runat ="server" 运行于服务器端。

改改写法 试试 document.getElementByID("<%=ButtonCpf.ClientID%>") 
 

#2


写错了 document.getElementById("<%=ButtonCpf.ClientID%>") 

#3


引用 2 楼 tianlehui 的回复:
写错了 document.getElementById("<%=ButtonCpf.ClientID%>") 



<asp:TextBox ID="ddlzl" runat="server"  onpropertychange="jiance()"></asp:TextBox>
<asp:Button ID="ButtonCpf" runat="server" BorderStyle="None" Height="100px" onclick="ButtonCpf_Click" Width="100px" />

问题解决了、请假朋友了、谢谢。
这两个控件调换一下前后顺序就好了  ButtonCp放在前面就相当于声明定义变量了
智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告