エクスペリエンス エディターのページにMVCフォームを追加すると、ブラウザのコンソールで次のエラーが発生して失敗する場合があります。
Uncaught TypeError: $ is not a function
at eval (eval at <anonymous> (16326293963705728857.JS:23), <anonymous>:3:31)
at eval (eval at <anonymous> (16326293963705728857.JS:23), <anonymous>:8:15)
at eval (<anonymous>)
at 16326293963705728857.JS:23
at Function.globalEval (16326293963705728857.JS:23)
at HTMLScriptElement.bl (16326293963705728857.JS:23)
at Function.each (16326293963705728857.JS:23)
at init.domManip (16326293963705728857.JS:24)
at init.domManip (16326293963705728857.JS:40)
at init.append (16326293963705728857.JS:24)
この事象は、フォームをレンダリングする前にロードする必要のあるスクリプトが欠落している為に発生します。スクリプトは、公式のSitecoreドキュメントで説明されているように、「MvcOuterLayout.cshtml」レイアウトが適用される際に、「@Html.RenderFormScripts()」ヘルパーによって追加されます。本件は、Sitecore Formsバージョン9.0.0~9.2.0で発生します。
本事象を解決するには、次のスクリプトをレイアウトの<head>セクションに手動で追加します(.cshtmlファイル)。
ScriptsSC9.0.0-9.0.2.txt
ScriptsSC9.1.0+.txt