ユーザーが開いているダイアログからファイル(画像、ビデオなど)を選択すると、フォームを自動送信し、コントローラーメソッドから成功またはエラーを通知する応答を取得しようとしています。
私がjquerysubmitを次のように呼び出すと、正常に機能します。
$("#fileupload2").submit(); //fileupload2 is a form tag
このようなものを追加するとすぐに追加されません。
$("#fileupload2").submit(function () { alert('hello'); });
関数を追加するとすぐに呼び出されない理由がわかりません。ブラウザ開発ツールに見られるエラーはありません。私のHTMLは次のようになります。
<form id="fileupload2" action="/Home/UploadFiles" method="POST" enctype="multipart/form-data">
<div class="btn btn-success fileinput-button">
<i class="icon-plus icon-white"></i>
<span>Add files...</span>
<input id="fileupload" type="file" onchange="uploadSelectedFile(this);" name="file">
</div>
@*<input type="submit" />*@
</form>
<script>
$(document).ready(function () {
$("#fileupload2").submit(function (e) {
alert('hello'); $.post('/Home/UploadFiles', $('#fileupload2').serialize(), function (data) {
alert(data);
});
return false;
});
});
function uploadSelectedFile() {
$("#fileupload2").submit();
}
</script>
私はuploadSelectedFileメソッドonchangeでjquerysubmitを呼び出しています。なぜこれが起こっているのかについてのアドバイスやアイデアはありがたいです。私にはこれは正しいようです。
コントローラ方式:
[HttpPost]
public ActionResult UploadFile() {
//Some code
return Json("success"); //or error
}