-2

特定のリンクがクリックされた場合にのみ表示されるフォームがあり、多くのドロップダウン メニューのオプションは JavaScript によって取り込まれます。

フォームが読み込まれるときにこの JavaScript を実行する必要がありますが、要素に配置されている例しか見つけることができず、私が理解していることから、CGI Perl は start_html 関数でタグを作成します。

フォームが表示されているときだけ JavaScript 関数をトリガーする方法はありますか?

編集: フォームには 2 行のドロップダウン メニューがあります。JavaScript は、最初の行の selectedIndex 値に基づいて、2 番目の行のオプションを設定します。ページが読み込まれたときに、最初の行のデフォルトに基づいて 2 番目の行にデータが入力されるようにします。

4

1 に答える 1

1

フィールドに入力する JavaScript 関数も、フォームを含む (または含まない) 同じロジックによって条件付きで含まれている場合、関数が存在するかどうかをテストし、存在する場合はそれを呼び出すことができます。

if (typeof yourFunction === "function") {
    yourFunction();
}

関数が常に存在する場合 (おそらく、常にページに含まれる外部 JS ファイルにある場合)、フォームに id を指定します (まだ ID がない場合)。

<form id="someIdHere" ...>

次に、フォームが存在するかどうかをテストし、関数を呼び出して作成を行うことができます。

if (document.getElementById("someIdHere")) {
    //form exists, so call:
    yourFunction();
}

いずれの場合も、ここで示した JS コードは、onloadハンドラー内か、フォームの後に表示されるスクリプト ブロック内にある必要があります。JS は、ブラウザーが既に解析した要素しか操作できないためです。

(関数自体がフォームの後に表示されるスクリプト ブロックで定義され、条件付きで含まれている場合は、定義した直後に直接呼び出すことができます。)

于 2012-10-25T04:40:06.793 に答える