2017-02-08 6 views
0

Я использую ajax для рендеринга частичного представления MVC.MVC RAZOR jQuery Ajax не выполняет javascript в IE

Этот код работает во всех браузерах, кроме IE:

// Load the Product Selection Area of the survey 
    $.ajax({ 
     type: 'POST', 
     url: '/Evaluation/_SurveyQuestions/', 
     data: { 
      productTypeId: productTypeId, 
      productIdsList: productIdsList, 
      languageId: languageId, 
      isLastPage: isLastPage 
     } 
    }).done(function(html) { 
     $('#surveyQuestionsArea').empty().html(html); 
    }).error(function() { 
     toastr.error("Error Loading Questions"); 
    }); 

Div #surveyQuestionsArea заполняется с все HTML, но в JavaScript на странице не будет выполняться в IE. Он работает во всех других браузерах.

Я получаю ошибку:

SCRIPT1003: Expected ':' 
jquery-2.2.4.min.js (2,2640) 

Единственные вопросительными знаками в моем HTML находятся в конце предложений в тексте. Я удалил их, и проблема осталась.

ОБНОВЛЕНО: Следующий скрипт находится в нижней части на моем частичном виде и подземной точке излома получить казнено:

<script type="text/javascript"> 
    debugger; 

    $(document).ready(function() { 
     debugger; 
    }); 
</script> 

если добавить этот скрипт в верхнюю части моего частичного вида. Эта точка останова выполнена:

<script type="text/javascript"> 
    debugger; 
</script> 

Любые предложения были бы весьма полезными.

+0

Вы имеете в виду, что HTML-код, который вы загружаете в '# surveyQuestionsArea', содержит javascript, и это не будет срабатывать? – Steve

+0

Да, это правильно. – Rodney

+0

Загрузите недопустимую версию jquery.js и убедитесь, что вы все еще получаете ошибку. Если вы все еще это сделаете, вы поймете, что происходит в IE. Если нет, вы можете начать просмотр мини-скрипта. – Jasen

ответ

1

Я отвечаю на свой вопрос здесь, надеясь помочь кому-то другому, который может столкнуться с этим.

Так что мой Javascript был АЯКС вызов, вот код:

 // Load the Product Selection Area of the survey 
     $.ajax({ 
      type: 'POST', 
      url: '/Evaluation/UpdateNumericResult/', 
      data: { 
       evaluationProductNumericId, 
       questionId, 
       results, 
       evaluationProductId, 
       previousResults 
      } 
     }).done(function() { 

     }).error(function() { 
      toastr.error("Error Saving Results"); 
     }).always(function() { 

     }); 

Если вы уведомление объект JSON данные я прохожу в одних и тех же переменных имена, как входы в мой частичный вид. Это работает во всех браузерах, кроме IE (я не пробовал Грань)

Исправление заключается в переформатировать АЯКС вызов:

 // Load the Product Selection Area of the survey 
     $.ajax({ 
      type: 'POST', 
      url: '/Evaluation/UpdateNumericResult/', 
      data: { 
       evaluationProductNumericId: evaluationProductNumericId, 
       questionId: questionId, 
       results: results, 
       evaluationProductId: evaluationProductId, 
       previousResults: previousResults 
      } 
     }).done(function() { 

     }).error(function() { 
      toastr.error("Error Saving Results"); 
     }).always(function() { 

     }); 

Обратите внимание на двоеточие в объекте DATA JSon недостающий один в ошибка выше.