これらの回答はいずれも、複数のファイルのアップロードでは機能しません。私の場合、コメントスレッドで複数の添付ファイルを許可する必要がありました。そのため、最初にコメントを保存してIDを取得してから、すべての添付ファイルをアップロードして保存する必要がありました。これは些細なことのように思えますが、このプラグインではそれほど直感的ではありません。私のソリューションはjQueryのカスタムイベントを使用しており、うまく機能します。
現在受け入れられている回答は、「追加」コールバックのボタンのクリックイベントにバインドされますが、「追加」コールバックはファイルごとに1回呼び出されます。毎回すべてのイベントのバインドを解除すると、最後のファイルのみがアップロードされます。
$('#fileupload').fileupload({
dataType: 'json',
add: function (e, data) {
$("#up_btn").on('customName', function (e) {
data.submit();
});
},
});
送信ボタンをカスタム名にバインドすることで、画像を送信する前に必要な前処理を行うことができます。私の場合、コメントを送信し、別の呼び出しで行ったコメントIDを取得する必要がありました。このコードはクリックに応答するだけですが、イベントをトリガーする前に好きなことを行うことができます。
$("#up_btn").on('click', function (e) {
e.preventDefault();
$("#up_btn").trigger( "customName");
});
イベントをトリガーするときに必要なデータを渡すことができるため、フォームを完全に制御できます。