1

当我单击“搜索”按钮时,我的“客户搜索”页面上出现 javascript 验证错误。

<asp:Button id="btnCustomerSearch" runat="server" onclientclick="return ValidateCustomer(1);" 
                                    Text="Continue" OnClick="btnCustomerSearch_Click" />  

错误信息是:

Microsoft JScript runtime error: 'ValidateCustomer' is undefined  

但是,在我的 ValidationFunctions.js 中,ValidateCustomer 函数确实存在。
为什么 aspx 看不到该功能(以及如何解决该问题)?

更新:
上述问题是由于js文件包含未准确引用而引起的。但是,如本文所述,我的代码后面有一个警报消息框,并且警报消息框也没有出现。所以这可能是与机器相关的问题。

我如何确定问题是否与机器有关?

4

1 回答 1

2

这是一个母版页应用程序。所以我可以<script type="text/javascript" src="Scripts/ValidationFunctions.js"></script> 在 .Master 文件上看到

如果您所在的页面位于与 MasterPage 所在位置不同的子目录中,那么这可能是个问题。

我更喜欢的一种选择是在 ScriptManager 中添加外部 javascript 文件,如果我使用的是:

<asp:ScriptManager ID="SM1" runat="server">
  <Scripts>
    <asp:ScriptReference Path="~/js/ValidationScript.js" />
  </Scripts>
</asp:ScriptManager>

这保证了脚本引用总是被解析为正确的路径,因为 ScriptManager 是一个服务端控件并用于ResolveClientUrl解析路径~/js/ValidationScript.js

如果这不是一个选项或不适用,我会从母版页引用外部 JS 文件,如下所示:

<head runat="server" id="page_header">
  <script type="text/javascript" src='<%=ResolveClientUrl("~/js/Validation.js")%>'  />
</head>

这保证了js无论页面或控件位于何处,都始终正确解析目录。

于 2012-08-14T15:18:41.807 回答