0

私は ASP.Net MVC アプリケーションを開発しており、ファイル アップロード HTML 要素と送信ボタンを含むフォームを持っています。ユーザーが最初にビューに移動すると、ファイル アップロードの HTML 要素でクリック イベントを自動的にトリガーする JavaScript コードがあるため、ユーザーは自分でボタンを押す必要がありません。これは利便性と私が望んでいる方法ですが、ボタンのクリックを自動的にトリガーすると、次の問題が発生します。フォームを送信するには、[送信] ボタンを 2 回押す必要があります。最初に押すとファイル アップロード HTML 要素のテキストがクリアされ、2 回目に押すとフォームが送信されます。なぜこれが起こっているのか、どうすればこれを行わないようにすることができるのか、誰でも説明できますか?

注: フォームは明示的に Ajax を使用しないように設定されています。これは、画像をアップロードしているためであり、私の理解では Ajax 経由で画像をアップロードできないため、フォームの HTML 属性で data-ajax = "false" を使用してオフにします。これを false に設定することは、私が抱えている問題に関連しています。ajax 経由で送信する場合、送信ボタンを 1 回押すだけで済みます。ajax を使用しない場合は、2 回押す必要があります。

問題を示す重要なコードは次のとおりです。

@Using Html.BeginForm("Document", "NewDocument", Model, FormMethod.Post, New With {.enctype = "multipart/form-data", .data_ajax = "false", .id="submitimage-form"})

@<input type="file" id="fileInput" name="fileInput" style="visibility:hidden;" />   

@<input type="submit" id="accept2" value="Accept" data-mini="true" data-theme="b" data-icon="check"/>
End Using

<script>

// Do once after DOM is loaded for the page
$(document).bind("pageinit", function () {
    $("#fileInput").click();
});

</script>
4

0 に答える 0