0

メニュー/サブメニューを再設計中です。サブメニューをページ下部のどこかから対応するメニュー項目の下に移動するだけです。現在、同じサブメニュー(アクション)がページに2回見つかりましたが、マウスオーバーでjQueryを使用して非表示および表示されたのはそのうちの1回だけです。どちらのメニューにも、try...catchブロックのある関数を指すオプションがあります。

ここに問題があります。jQueryで表示されるアクションを使用すると、「try」という単語がそこにさえなかったように、Javascriptがtryブロックでクラッシュします(「何か」は未定義です-古典的です)。ファイアバグデバッガーを使用しましたが、他のサブメニューを使用した場合にも同じエラーが発生しますが、それはスキップされ、catch内のコードが実行されました。

両方のオプションが2つの「同一の」関数ではなく、同じ関数を呼び出すことを考えると、これがどのように可能であるかを理解していません...

何かご意見は?ありがとう :)

私を編集:

function export_pdf() {
            try {
                ReportType=document.forms["down"].elements["ReportType"].value;
            }
            catch (e) {
                ReportType='TDR_Report';
            }

            //other code...
}

そして、エラーは「document.forms.down.elements.ReportTypeisundefined」です...

ありがとう!

編集II:

関数の呼び出し:

onclick="export_pdf();"
4

1 に答える 1

0

この場合、単純に try .. catch を避けて、ReportType をテストします。ReportType が定義されていない場合は、値を手動で設定します。

function export_pdf() {

    if (document.forms["down"].elements["ReportType"] === undefined){
        ReportType = 'TDR_Report';
    } else {
        ReportType = document.forms["down"].elements["ReportType"].value;
    }

    //other code...
}
于 2012-09-18T13:50:02.750 に答える