【问题标题】:Function has not been declared函数未声明
【发布时间】:2013-07-26 11:31:45
【问题描述】:

我试图从一个按钮调用一个函数,但是当我按下按钮时,它表示没有声明该名称的函数。

这是我的按钮代码:

<asp:TextBox ID="DateOutTxt" runat="server" Width="80px"></asp:TextBox><asp:ImageButton
                    ID="ImageButton5" runat="server" BorderStyle="None" ImageUrl="~/icons/vwicn063.gif"
                    OnClientClick="PopupPicker(DateOutTxt, 250, 250);" Width="21px" /></td>

这是我要调用的函数:

<script language ="javascript" type ="text/javascript">
    function PopupPicker(ctl, w, h) {
        var PopupWindow = null;
        settings = 'width=' + w + ',height=' + h + ',location=no,directories=no, menubar=no,toolbar=no,status=no,scrollbars=no,resizable=no,dependent=no';
        PopupWindow = window.open(<%= getServerName.getserverName("/Quoteman/DatePicker.aspx?Ctl=") %>);
    PopupWindow.focus();
}
</script>

我目前在标签底部有脚本标签,但我尝试将它放在标签中和标签下方。我似乎找不到问题所在。

语言是 ASP.Net 和 Javascript。那里还有一个对 VB.Net 函数的调用。

【问题讨论】:

    标签: javascript asp.net vb.net


    【解决方案1】:

    确保脚本的可用性,将脚本放在 head 标签中或在渲染 html 元素之前。您以错误的方式传递当前对象,请使用 this 而不是 DateOutTxt

    改变

    OnClientClick="PopupPicker(DateOutTxt, 250, 250);"
    

    OnClientClick="PopupPicker(this, 250, 250);"
    

    将 scriptlet 放在 window.open 中。

    function PopupPicker(ctl, w, h) {
        var PopupWindow = null;
        settings = 'width=' + w + ',height=' + h + ',location=no,directories=no, menubar=no,toolbar=no,status=no,scrollbars=no,resizable=no,dependent=no';
        PopupWindow = window.open('<%= getServerName.getserverName("/Quoteman/DatePicker.aspx?Ctl=") %>');
        PopupWindow.focus();
    }
    

    【讨论】:

    • 我仍然收到错误消息“Javascript 运行时错误:PopupPicker 未定义
    • 检查我更新的答案,并从 PopupPicker 中删除所有代码并发出警报(“”);以确保我们可以调用它。
    • 你能用firebug调用这个函数吗?
    • 它现在正在调用它,但它正在另一个窗口中打开,并且不会让我单击任何内容以将数据输入到我想要的文本框中。谢谢......这解决了我的问题,但现在我有另一个......哦,是时候再问一个问题了。
    猜你喜欢
    • 2014-03-31
    • 2018-10-27
    • 1970-01-01
    • 1970-01-01
    • 2021-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多