2017-07-11 6 views
-1

私のコードがどのように機能するのか、私はあなたに要点を与えます。 html_filesにファイルがない場合、デフォルトのオプションは "---"ですが、html_filesにファイルが存在する場合は、 の2種類のオプションがあります。1) "---" 2)ファイル。しかし、デフォルトではまだ "---"のままですページの更新時にオプションを選択したままにします

だから私がしたいのは、html_filesにファイルが存在する場合、デフォルトのオプションを "---"ではなく現在のファイルに変更したいということです。私はそれをどうやって行うのかを考えていない。誰か助けてくれますか?

<span title="list resources who's involved etc">About File: 
     <select class="experiment_file_selector" id="about_file" name="about_file"> 
     <option value="None" {% if not exp.about_file %}selected="selected"{% endif %}>---</option> 
     {% for file in html_files %} 
      <option value="{{ file.id }}" {% if file == exp.about_file %}selected="selected"{% endif %} >{{ file.get_base_name }}</option> 
     {% endfor %} 
     </select></span> 

それはexp.about_fileが存在する場合、選択入力タグのデフォルトのファイルを取得するのが、それはそれは手動にする必要があるテンプレートに表示さ得るためにのために仕事をするの下に示唆したように、私はJSのスクリプトを追加しましたクリックした プロセスを自動化するために、何とか失敗するような.click()を使ってみました。

基本的には、選択リスト "---"またはlistFile [0]から最初のオプションを選択してから、2番目のexp.about_fileまたはlistFile [1]を手動で選択すると、結果いくつかの方法はJSスクリプトでは起こりません。

listFile [0]とlistFile [1]のマウスクリックイベントを自動化する方法を教えてもらえます。

おかげ

$(document).ready(function(){ 
    var listFile = document.getElementById('about_file'); 
    if (listFile.length > 1) 
    { 
    listFile[1].setAttribute('selected', 'selected'); 
    listFile[0].click(); 
    listFile[1].click(); 
    } 
}); 
+0

あなたの質問は不明です:exp.about_fileとは何ですか? –

+0

その実験ファイルの名前 – unknown

+0

try https://stackoverflow.com/questions/6964086/get-previous-form-filled-data-in-django-forms – badiya

答えて

0

JavaScriptを使用している場合は簡単になります。あなたのページがロードされたときに単にselected = "selected"属性を追加してください。

document.addEventListener('DOMContentLoaded', function(e) { 
    var listFile = document.getElementById('about_file'); 
    if (listFile.length > 1) { 
    listFile[1].setAttribute('selected', 'selected'); 
    } 
}); 
+0

コードは機能し、デフォルトでファイルが取得されますが、私の懸念事項はそのファイルを実際にクリックして選択して有効にする必要があります。どうしてか分かりません。私はオプションを選択して作業を完了しなければならない – unknown

+0

'.click()'を使って、最初のオプション(最初のファイル)のクリックをトリガーすることができます: 'listFile [1] .click();' –

+0

$(document).ready(function(){ var listFile = document.getElementById( 'about_file'); if(listFile [1] .setAttribute( 'selected'、 'selected')の下に追加するには、 listFile.length> 1) {LISTFILE [1] .setAttribute() '選択'、 '選択'; LISTFILE [0] .click(); LISTFILE [1] .click();} }) ; does not work。あなたは助けることができます – unknown

関連する問題