ホームページ > ウェブフロントエンド > jsチュートリアル > js_form エフェクトを使用してフォームに enctype=multipart/form-data を動的に挿入する際の問題

js_form エフェクトを使用してフォームに enctype=multipart/form-data を動的に挿入する際の問題

WBOY
リリース: 2016-05-16 17:53:06
オリジナル
1461 人が閲覧しました

フォームがファイルを送信できるようにするには、ファイルをアップロードできるようにフォームに属性 enctype=multipart/form-data を指定する必要があることは誰もが知っています。enctype に関する記事はたくさんあるので、説明します。ここでは説明しません。

問題は、MVC の Html.BeginForm() がフォーム コードの出力に使用されることです。

Copy code コードは次のとおりです:

@using (Html.BeginForm()) {
}

があります< in PartialView ;input type="file" /> はファイルのアップロードに使用されますが、この PartialView の親ページの Html.BeginForm() を変更したくありません。私のアプローチは、スクリプトを使用することです。 PartialView で enctype をフォームに追加します:

コードをコピー コードは次のとおりです:

$(function(){
$('# file').parents('form').attr('enctype', 'multipart/form-data');
});
最近の主流のブラウザはテストに合格しましたか? 問題があるのは、少数の古いバージョンの IE だけであり、この問題を解決するために enctype を Html.BeginForm() に手動で追加してみました。つまり、問題は次のとおりです。上記のスクリプト。何度も検索した結果、IE6、7、および 8 では直接 attr('enctype', 'multipart/form-data') がサポートされておらず、dom 属性 encoding='multipart/form-data が設定されているために問題が発生することが最終的にわかりました。 ' と最終的なスクリプト コードを次のように変更します:


コードをコピー コードは次のとおりです:
$(function () {
$('#file').parents('form').attr('enctype', 'multipart/form-data').get(0).encoding = 'マルチパート/フォームデータ'
});
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート