2011-01-11 4 views
0

Я написал эту функцию ajaxform с функцией успеха, которая вызывается при суммировании формы. Ajaxform работает AWESOMELY в любом браузере, кроме IE. Я не могу понять, почему IE не передает функцию.IE не передаёт функцию успеха в AJAXFORM

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

Успех функции:

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

Вызов функции

$(document).ready(function(){ 
    $('.addto_cart').click(function(){new setupAjaxForm('add_cartForm',addProductCartStatus);}); 
}); 
+0

Там нет причин для ' new' здесь, вы не вызываете конструктор. Кроме того, ваш отступ кода ужасен, мне потребовалось 3 попытки выяснить, что '' 'после оповещения соответствует анонимной функции ... –

+0

Он работает в firefox и других браузерах, It's/NOT/работает в IE браузеров. Таким образом, это означает, что все функции работают. После чего предупреждение? Если я ошибаюсь, объясните сами. –

ответ

0

этот ответ идет в основном на ваш последний комментарий

Internet Explorer является более жестким в некоторых случаях , эта линия result = "success" как упомянуто неправильно, и преобразует результат в строку с успехом слова в нем и всегда верно, так что всегда обновляет

также его рекомендуется добавить error:function(){} на ваш АЯКС вызова

+0

Спасибо, что показываем его в правильном направлении :) –

+0

Надеюсь, если бы помогли и всегда проверяли с помощью каждого инструментария разработчиков браузеров значение каждой переменной. – elasticrash

0
if(result = "success") 

Должна быть

if(result == "success") 

И "{" для вас должны использовать ваш, если

if(result == "success") { 
    updateStatus(json); 
} else { 
+0

На самом деле это должно быть '===', так как никто не должен когда-либо играть в русскую рутину магии принуждения типа, да, это может быть нормально для строки string, но это вопрос согласованности :) –

+0

HAHAHA, позвольте мне попробовать русская рулетка :), но в IE функция предупреждения (результатов) даже не вызывается. –

Смежные вопросы