2013-07-25 91 views
0

我目前正试图执行一个已经预先声明的函数。 该功能附加到按钮,但是当我点击按钮,我得到错误消息“PopupPicker尚未声明”。

下面是我的功能和试图执行该功能的按钮的副本。
执行附加到按钮的功能

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=") %> + ctl,'DatePicker',settings); 
    PopupWindow.focus(); 
} 

这是按钮。

<td style="width: 120px"> 
    <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> 
<td colspan="2" style="width: 100%"> 
    <asp:TextBox ID="DateInTxt" runat="server" Width="80px"></asp:TextBox> 
    <asp:ImageButton ID="ImageButton1" runat="server" BorderStyle="None" ImageUrl="~/icons/vwicn063.gif" OnClientClick="PopupPicker('DateInTxt', 250, 250);" Width="21px" /> 
</td> 
<td colspan="1" style="width: 100px"> 
</td> 

语言是JavaScript和HTML与一些VB.Net在那里。

+0

尝试在函数中传递单参数说PopupPicker('DateInTxt'),它仍然给那个味精呢? – rps

+0

你在哪里定义你的JS函数或的末尾?可能是因为您在加载JavaScript函数之前单击了该元素。另外,代码中可能存在JS错误,导致整个JS块在浏览器中不可用。检查控制台是否有错误。 – spliter

+0

如果我尝试传递一个参数,那么我将无法声明弹出窗口的大小。 – GeoffWilson

回答

1

确保您声明函数或者<head></head><body></body>。 像这样:

<html> 
    <head> ... </head> 
    <body> 
    ... 
    <script> 
     function PopupPicker(ctl,w,h) { ... } 
    </script> 
    </body> 
</html> 

你应该放任何东西,除了评论或</html></body>标签下方。这是无效的。

如果您使用的是jQuery,请确保您的函数没有在jQuery的$(document).ready()中声明,但在其外部。像这样:

<script> 
    function PopupPicker(ctl,w,h) { ... } 
    $(document).ready(function(){..}) 
</script> 
+0

我不认为它使用jQuery,但我不是100%,因为它是一个公司的应用程序。 – GeoffWilson

+0

刚问过我的经理和应用程序不使用jQuery。 – GeoffWilson

+0

该函数在哪里声明? –