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のある場所とは異なるサブディレクトリにある場合、これは問題になる可能性があります。

私が好む代替案の1つは、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 に答える