0

ユーザーが開いているダイアログからファイル(画像、ビデオなど)を選択すると、フォームを自動送信し、コントローラーメソッドから成功またはエラーを通知する応答を取得しようとしています。

私が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
    }
4

3 に答える 3

2

submitコールバックがないと、フォームを送信するイベントがトリガーされます。

コールバックを使用すると、その関数をイベントにバインドしますsubmit。つまり、フォームが送信されると、その関数が実行されます。

あなたは何をしようとしているのですか?

于 2012-12-13T05:04:36.580 に答える
2
$("#fileupload2").submit();

上記はフォームを送信します

以下はフォームをまったく送信しませんが、フォームが送信されたときに何かを実行します。これは送信イベントにバインドされたイベントハンドラーであるため、プログラムで、またはデフォルトのボタンを使用してフォームが送信されるたびに、以下で警告が表示されます。

$("#fileupload2").submit(function () { alert('hello'); });
于 2012-12-13T05:05:01.573 に答える
-1
$("#fileupload2").submit(function() {
 alert("Your Form is submited");
});
于 2012-12-13T05:15:41.380 に答える