【问题标题】:Javascript validation error in asp.netasp.net 中的 Javascript 验证错误
【发布时间】:2012-08-14 14:50:53
【问题描述】:

当我单击“搜索”按钮时,我的“客户搜索”页面上出现 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文件包含未准确引用而引起的。但是,如this post 所示,我的代码后面有一个警报消息框,并且警报消息框也没有出现。所以这可能是与机器相关的问题。

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

【问题讨论】:

  • 您是否正确引用了您的ValidationFunctions.js 文件?
  • 你能把这个功能贴在这里吗?另外,你确定这个 JS 是链接在页面上的吗?
  • 您确定您正确引用了脚本文件吗?你真的可以查看源代码并导航到它吗?
  • 你也可以发布ValidateCustomer函数吗?以及它在 ASPX 文件中的引用位置?
  • 这是一个母版页应用程序。所以我可以在 .Master 文件中看到

标签: c# javascript asp.net validation


【解决方案1】:

这是一个母版页应用程序。所以我可以看到<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 目录总是被正确解析,无论页面或控件位于何处。

【讨论】:

  • 奇怪的反应....当我在母版页上包含您的脚本时 应用程序的起始页根本不加载....只是不断尝试加载,但起始页从未出现。当我将它改回我的原始脚本 开始页面加载正常
  • @DotNetRookie 很奇怪。我刚刚在我的电脑上测试过,绝对可以正常工作。 &lt;head runat="server"&gt; &lt;script type="text/javascript" src='&lt;%=ResolveClientUrl("~/Scripts/jquery-1.4.1.js") %&gt;' &gt;&lt;/script&gt; &lt;/head&gt;。脚本路径正确解析。没有ResolveClientUrl,当页面与MasterPage不在同一目录时返回错误的路径。
猜你喜欢
  • 2010-12-21
  • 1970-01-01
  • 2023-03-05
  • 2014-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多