0

ファイルを使用してフォームを送信しようとすると、アップロードするファイルが選択された後、フォームを送信する前に変更された場合(ファイルの名前変更など)に問題が発生します。フォームは単に送信されません。これは私のサンプルコードです:

<form action="test.htm" method="post" enctype="multipart/form-data" id="test">
    <input type="file" name="file" />
    <input type="submit" value="Submit" />
</form>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
$(document).ready(function() {
    $('#test').submit(function() {
        console.log("IT WORKS!");
        return true;
    });
});
</script>

アップデート

このコードを使用すると、さらに単純化されます。

<form action="upload.asp" method="post" enctype="multipart/form-data">
    <input type="file" name="file" />
    <input type="submit" value="Submit" />
</form>

これを試してください:1)システムからファイルを選択します2)システム上のファイルの名前を変更します3)フォームを送信します。

何も起こりません。

4

2 に答える 2

0

が表示されない理由console.logがわからない場合は、フォームがすでに送信されているためです。

を追加するだけでevent.preventDefault、コードが確実に実行されます。

$(document).ready(function() {
    $('#test').submit(function(e) {
        e.preventDefault();
        console.log("IT WORKS!");
        return true;
    });
});

デモ

アップデート

アクションパスは.htmファイルへのパスです。を処理するには、サーバー側の言語が必要になりますPOST

于 2013-01-03T08:08:01.903 に答える
0

javascsript関数は役に立ちません。

<input type="submit"..

呼び出される前にフォームを送信します

1つの方法はpreventDefault()、関数で使用することです。

$(document).ready(function() {
 $('#test').submit(function(e) {
    e.preventDefault();
    console.log("IT WORKS!");
    return true;
 });
});

またはボタンとして入力します

<button id="submit">Submit</button>

$('#submit').click(function(){
$('#test').submit(function() {
   console.log("IT WORKS!");
   return true;
 });
});
于 2013-01-03T08:09:55.510 に答える