2017-07-05 3 views
0

私はuploadボタンを持っています。現在、クリックされると、フォームにデータを送信する新しいボタンsaveが表示されます。 uploadをクリックしてファイルを選択するタブを開き、Openをクリックして2番目のボタンを使用せずにフォームを送信した場合は可能ですか?このボタンは、フォームを送信し、第二ボタンsaveせずにデータを送信するために、私はこのコード2番目の提出ボタンを使わずにアップロードボタン提出ファイルを作る方法symfony3

<form action="/upload" method="post"> 
    <input type="file" name="uploadButton" value="Upload Images"/> 
</form> 

を持っている想像し することは、可能です。私はSymfony 3.3と小枝テンプレートを使用しています。私はそれが助けることができる場合はJavaScriptを知っています。前もって感謝します。

+0

は、入力の変化に自動的にフォームを送信するためにイベントリスナーを追加します。 ? – Danmoreng

+0

決してそれを考えなかった。ありがとうございました! –

答えて

0

入力が変化するときに自動的にフォームを送信するためにイベントリスナーを追加します。

HTML:

<form id="myform" action="/upload" method="post"> 
    <input id="myinput" type="file" name="uploadButton" value="Upload Images"/> 
</form> 

はJavaScript:

var form = document.getElementById('myform'); 
var input = document.getElementById('myinput'); 

var change_running = false;  
input.addEventListener('change', function(){ 
    if(!change_running){ 
     setTimeout(function(){ 
      change_running = true; 
      form.submit(); 
      change_running = false;  
     }, 300); 
    } 
}); 
+0

最初はうまくいったようですが、複数のファイルを追加すると、最初のものだけをフォームに送信します。私は、 "onChange"があることをHTMLソーで短くしたことを付け加えなければなりません。その理由は、私が複数のファイルをアップロードしようとするまで、同じページ(1つのテーブル)と異なるIDと "onChange"を持つそれぞれのフォームの異なるギャラリーに関連する多くのボタンでこれを必要としていたからです。何らかの理由で、この方法でフォームを提出する前にすべてのファイルを持っていますが、最初のファイルは –

+0

より詳細なコードが良いでしょう。とにかく、最後の入力にaddEventListenerを試すことができます。 – taha

+0

これは興味深い動作です。私は本当にそのアイデアが嫌いですが、あなたはonchangeイベントに遅延を追加することができます。私は私の答えにいくつかのコードを追加しました。ブール値は、フォームが複数回送信されないことを確認することです。複数のファイルが変更イベントを複数回トリガするかどうかはわかりません。 – Danmoreng

関連する問題