Domanda

ho scritto questa funzione ajaxform con una funzione di successo che sta chiamando sulla sumiting modulo. L'ajaxform funziona incredibilmente con qualsiasi browser diverso da IE. Non posso capire perché IE non sta passando la funzione.

AjaxForm:

function setupAjaxForm(form_class, updateStatus){
            var form = '.'+form_class;
            var form_action = $(form).attr('action');
            var form_url = form_action+"ajax/";

            var submitOptions = {
                    url : form_url,
                    type : 'POST',
                    dataType : 'json',
                    success : function(json) {
                    var results = json.results;
                              alert(results);
                    if(results == "success"){
                        updateStatus(json);
                    }else{
                        alert(" FAIL ");
                                    }
                    }
            };
            $(form).ajaxForm(submitOptions);
        }

Funzione Successo:

function addProductCartStatus(json){
    alert(" Entered for jquery ");
}

funzione di chiamata

$(document).ready(function(){
    $('.addto_cart').click(function(){new setupAjaxForm('add_cartForm',addProductCartStatus);});
});
È stato utile?

Soluzione

questa risposta va principalmente a tuo ultimo commento

Internet Explorer è più rigida, in alcuni casi. questa linea result = "success" come detto è sbagliato e converte il risultato in una stringa con la parola successo in esso ed è sempre vero quindi è sempre aggiornamenti

anche la sua consiglia di aggiungere un error:function(){} sulla vostra chiamata AJAX

Altri suggerimenti

if(result = "success")

Dovrebbe essere

if(result == "success")

e si dovrebbe utilizzare "{" per il vostro caso

if(result == "success") {
   updateStatus(json);
} else {
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top