-1

2つの別々の.jsファイルがあり、ユーザーがselectタグのフォームで選択した内容に応じて、ユーザーリクエストに固有の.jsファイルをhtmlページで使用する必要があります。

これは私のコードです:

<script type="text/javascript"> 
 $(document).ready(function(){
    if (document.getElementById('analyses').value == 'distance'){

 <script src="/static/analysis.js"></script>

    }else{
 <script src="/static/another.js"></script>
    }
   });
</script>

htmlフォーム:

<form id="eventForm">            
     <select name="event" id="abc">
        <option value="" disabled="disabled" selected="selected">Select Event</option>
        <option value="US">US</option>
        <option value="UK">UK</option>
        <option value="Fr">France</option> 
     </select>             

     <select name="analysis" id="analyses">
        <option value="" disabled="disabled" selected="selected">Select Analysis</option>
        <option value="distance">distance</option>
        <option value="other">other</option>
     </select>

    <input type="submit" id="open" onclick="heading()" value="Start Analysis"/>

現在、ユーザーの選択に関係なく、/ static/analysis.jsファイルを実行するだけです。

ありがとう

編集:

<script>

function loadScript(path) {
    var head=document.getElementsByTagName('head')[0];
    var script = document.createElement('script');
    script.setAttribute('type', 'text/javascript');
    script.setAttribute('src', path);
    head.appendChild(script);
}


$(document).ready(function(){
if (document.getElementById('analyses').value == 'distance'){

loadScript("/static/analysis.js");

}else{
loadScript("/static/analysisfdfdf.js");
}
});
</script>
4

3 に答える 3

1

この関数を使用して、他の JS ファイルを動的にロードできます。

function loadScript(path) {
    var head=document.getElementsByTagName('head')[0];
    var script = document.createElement('script');
    script.setAttribute('type', 'text/javascript');
    script.setAttribute('src', path);
    head.appendChild(script);
}

使用法:

loadScript("/static/analysis.js");

スクリプトは非同期で読み込まれるため、その行の後にスクリプトが読み込まれるとは限りません。callback準備完了通知として実行するには、ロードされたスクリプトが必要です

于 2012-12-05T17:41:21.480 に答える
0

jQuerys getScript()を使用できます- http://api.jquery.com/jQuery.getScript/

したがって、ユーザーが選択を行うと、関連する js ファイルをロードするだけです。

于 2012-12-05T17:34:05.863 に答える
0

スクリプトの 1 つだけをロードする必要がありますか? 関連するスクリプトのコードをそれぞれ含む 2 つの JavaScript 関数を作成し、ユーザーの選択に対応する方を実行できます。

html に両方を含める限り、2 つの別個の .js ファイルで定義できない理由はありません。

これは、動的にコードをロードすることを心配することなく、特定のコードを実行するためのより簡単な方法のように思えます。

于 2012-12-05T17:54:43.420 に答える