-1

多くのテキスト入力フィールドで Jquery datepicker を使用しています。機能していません。インクルード ファイルに javascrippt があり、savecontent を実行して cfhtmlhead を使用できるようにします。開発ツール コンソールにエラーが表示されます。

<script type="text/javascript">/* <![CDATA[ */
ColdFusion.Event.registerOnLoad(initCandidateScript,null,false,true);
// Uncaught ReferenceError: initCandidateScript is not defined  <---------console error
/* ]]> */
</script>



<cfajaximport tags="cfgrid,cfform,cfinput-autosuggest,cfinput-  datefield,cftextarea,cfwindow">
<style>
#ui-datepicker-div { z-index:10000; } 
</style>
<cfsavecontent variable="JobAdScript">
<script language=JavaScript src="picker.js"></script> 
<script language=JavaScript src="JobAdsJavascript.js"></script> 
</cfsavecontent>
<cfhtmlhead text="#JobAdScript#" />
<cfset ajaxOnLoad("initCandidateScript")>

このコードはインクルード js ファイルにあります。

$(document).ready(function () {
    function initCandidateScript() {
        $(function () {
            alert('starting');
            $('input.datestuff').datepicker({
                dateFormat: 'yy/mm/dd'
            });
        });
    }
4

1 に答える 1

0

initCandidateScriptドキュメント対応イベント コールバックの外に定義を移動する必要があります。DOM の準備が整うまで関数の定義を遅らせても意味がありません。

それに加えて、CF JavaScript フレームワークは、すべての準備が整いロードされるまで、その関数の実行を遅らせるようです。

したがって、.js ファイルでこのような関数を定義するだけで、DOM Ready イベントでラップする必要はありません。

function initCandidateScript() {
    $(function() {
        alert('starting');
        $('input.datestuff').datepicker({
            dateFormat: 'yy/mm/dd'
        });
    });
}

実際には、必要のない別のDOM 対応コールバックが関数内にあるため、さらに単純化できます。

function initCandidateScript() {
    $('input.datestuff').datepicker({
        dateFormat: 'yy/mm/dd'
    });
}
于 2013-03-21T13:12:16.527 に答える