Domanda

Im presentando il mio file tramite jQuery utilizzando Jform.js plug-in e il suo funzionamento in Firefox, ma quando provo in archivio IE8 correttamente sottopongono ma controllo di caricamento file viene nascosto e in seguito di più quando io commento condizione IE quindi per la squadra di controllo di caricamento di file ottenere nascondere ma quando controllo Request.Files [0] .ContentLength nel mio controller esso ha valore 0. Questo è il mio codice e quello che può essere im facendo male? Im con Asp.net MVC e 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) {    
});
È stato utile?

Soluzione 2

La soluzione è semplice ho solo aggiungere che il controllo browse quando risposta di ritorno da ajaxsubmit funzione e il codice è il seguente

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

Altri suggerimenti

Qual è il delirio, prima .ajaxSubmit? Sembra che il codice a partire dalla fine degli anni '90. Suggerirei di utilizzare semplicemente jQuery e non preoccuparsi di problemi di cross browser:

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

Nota: l'azione modulo hardcoded sembra brutto. Si dovrebbe considerare l'utilizzo di aiutanti HTML per generare gli URL.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top