Question

Im soumettre mon dossier par jquery en utilisant Jform.js plugin et son travail dans Firefox, mais quand je l'essayer sur le fichier IE8 correctement sumbitted, mais le contrôle de téléchargement de fichiers est caché et encore plus quand je commente l'état IE puis le contrôle de téléchargement de fichiers ne marche pas se cacher, mais quand je vérifie Request.Files [0] .ContentLength dans mon contrôleur, il a valeur 0. Ceci est mon code et ce qui peut être im faire le mal? Im en utilisant Asp.net MVC et 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) {    
});
Était-ce utile?

La solution 2

La solution est simple, j'ajouter que le contrôle de navigation quand il réponse en retour de ajaxsubmit fonction et le code est le suivant

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

Autres conseils

Quel est le délire avant .ajaxSubmit? Il ressemble à un code de la fin des années 90. Je vous recommande d'utiliser simplement jQuery et vous inquiétez pas sur les questions transversales du navigateur:

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

Remarque: l'action sous forme hardcoded semble laid. Vous devriez envisager d'utiliser des aides HTML pour générer urls.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top