Frage

Absenden Im meine Datei über jquery unter Verwendung Jform.js Plugin und seine Arbeits in Firefox, aber wenn ich es auf IE8 Datei versuchen richtig sumbitted aber Datei-Upload-Steuerelement wird versteckt und noch mehr, wenn ich IE Zustand Kommentar dann die Datei-Upload-Steuerelement tut erhalten verstecken, aber wenn ich Request.Files überprüfen [0] .ContentLength in meinem Controller es hat 0 Wert. Das ist mein Code und was sein im möglicherweise falsch? Im mit Asp.net MVC und 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) {    
});
War es hilfreich?

Lösung 2

Die Lösung ist einfach i fügen Sie einfach, dass die Kontrolle browse, wenn es wieder aus ajaxsubmit Antwort und Code folgt als

            $(myform).ajaxSubmit({ success: function (responseText) {
            if (document.all) {//IE
                imageLoadParent.appendChild(myform.firstChild);
            }
            else//FF                     
            {
                document.body.removeChild(myform);
            }

Andere Tipps

Was ist das Delirium vor .ajaxSubmit? Es sieht aus wie Code aus dem Ende der 90er Jahre. Ich würde Ihnen empfehlen, einfach jQuery zu verwenden und sich keine Sorgen über Cross-Browser-Probleme:

$('form')
    .attr('action', '/Media/AjaxSubmit')
    .attr('method', 'post')
    .attr('enctype', 'multipart/form-data')
    .hide()
    .append($('#' + fileId).clone())
    .ajaxSubmit({
        success: function(responseText) {
            // ...
        }
    })
    .appendTo('body');

Hinweis: die hartcodierte Form Aktion sieht hässlich aus. Sie sollten mit Hilfe von HTML Helfer betrachten zu Urls generieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top