インターネットエクスプローラでファイルの内容を提出する問題
-
26-09-2019 - |
質問
イムは、FirefoxでJform.jsプラグインとその作業を使用してjqueryの経由私のファイルを提出するが、私はIE8のファイルでそれをしようとすると、正しくsumbittedが、ファイルアップロードコントロールが隠されますと、さらに多くの私は、ファイルアップロードコントロールdoesntのIEの状態をコメントするとき非表示を取得するが、私は私のコントローラでRequest.Files [0] .ContentLengthをチェックするときには0の値を持ちます。これは私のコードで、何が間違っているイムことができますか?イム使用してAsp.net MVCとjQuery-1.4.2
var myform = document.createElement("form");
myform.style.display = "none"
myform.action = "/Media/AjaxSubmit";
myform.enctype = "multipart/form-data";
myform.method = "post";
var imageLoad;
var imageLoadParent;
if (document.all) {//IE
imageLoad = document.getElementById(fileId);
imageLoadParent = document.getElementById(fileId).parentNode;
myform.appendChild(imageLoad);
document.body.appendChild(myform);
}
else {//FF
imageLoad = document.getElementById(fileId).cloneNode(true);
myform.appendChild(imageLoad);
document.body.appendChild(myform);
}
$(myform).ajaxSubmit({ success: function (responseText) {
});
解決 2
次のように
ソリューションは、それがバックajaxsubmit機能やコードからの応答時に、私はちょうどそのブラウズコントロールを追加する簡単なの
です $(myform).ajaxSubmit({ success: function (responseText) {
if (document.all) {//IE
imageLoadParent.appendChild(myform.firstChild);
}
else//FF
{
document.body.removeChild(myform);
}
他のヒント
.ajaxSubmit
前せん妄とは何ですか?それは90年代の終わりからのコードのように見えます。私はあなたが単純にjQueryを使用し、クロスブラウザの問題を心配しないようにお勧めします:
$('form')
.attr('action', '/Media/AjaxSubmit')
.attr('method', 'post')
.attr('enctype', 'multipart/form-data')
.hide()
.append($('#' + fileId).clone())
.ajaxSubmit({
success: function(responseText) {
// ...
}
})
.appendTo('body');
備考:ハードコードされたフォームのアクションは醜いです。あなたは、URLを生成するHTMLヘルパーを使用して検討する必要があります。
所属していません StackOverflow