0

Jform.jsプラグインを使用してjqueryを介してファイルを送信し、Firefoxで動作しますが、IE8ファイルで試してみると、適切に送信されましたが、ファイルアップロードコントロールが非表示になり、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) {    
});
4

2 に答える 2

2

以前のせん妄は何.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');

注意: ハードコーディングされたフォーム アクションは見栄えが悪いです。HTML ヘルパーを使用して URL を生成することを検討する必要があります。

于 2010-09-28T18:34:33.333 に答える
0

解決策は簡単です ajaxsubmit 関数とコードからの応答が次のようになったときに、そのブラウズコントロールを追加するだけです

            $(myform).ajaxSubmit({ success: function (responseText) {
            if (document.all) {//IE
                imageLoadParent.appendChild(myform.firstChild);
            }
            else//FF                     
            {
                document.body.removeChild(myform);
            }
于 2010-10-02T13:09:35.573 に答える