Frage

Ich habe diese ajaxform Funktion mit einer Erfolgsfunktion geschrieben, die auf sumiting das Formular aufgerufen wird. Die ajaxform arbeitet Awesomely in jedem anderen Browser als Internet Explorer. Ich kann nicht verstehen, warum IE ist die Funktion nicht übergeben.

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);
        }

Erfolgsfunktion:

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

aufrufen Funktion

$(document).ready(function(){
    $('.addto_cart').click(function(){new setupAjaxForm('add_cartForm',addProductCartStatus);});
});
War es hilfreich?

Lösung

this answer goes mainly to your latest comment

internet explorer is more stiff in some cases. this line result = "success" as mentioned is wrong and converts result into a string with the word success in it and is always true so it always updates

also its recommended to add a error:function(){} on your ajax call

Andere Tipps

if(result = "success")

Should be

if(result == "success")

And you should use "{" for your if

if(result == "success") {
   updateStatus(json);
} else {
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top