Sesha S
Sesha S

Reputation: 283

Ajax on success of another ajax doesn't work in ie

I do an ajax call to get a list of all elements, say Products and populate them in a table with checkboxes. Then I make another ajax call to get which products were already selected and select them. This works in all browsers except ie. Am I doing something wrong?

$.ajax({
                url : "${product_category_url}",
                data : {"orgID":"${globalOrganisation.id}"},
                dataType : "html",
                statusCode: {
                    401: function() {
                        $('.ui-tabs-panel:visible').html("${ajax_session_expired}");
                    }
              },
              success : function(data) {
                  $("#productCategoryContainer").html(data);
                  $.ajax({
                      url: "${get_taggedProd_url}",
                      data: {"questionnaireId":_questionnaireId},
                      dataType: "json",
                      success: function(data){
                          var productIds = data.products;
                          $.each(productIds,function(index,value){
                             var obj = $('input[name="'+value+'"]');
                             obj[0].checked = true
                             selectRow(obj[0]);
                          });
                      }
                  });
              }
            });

Upvotes: 0

Views: 665

Answers (2)

This is due to caching by IE.

Please try this

$.ajax({
                url : "${product_category_url}",
                data : {"orgID":"${globalOrganisation.id}"},
                dataType : "html",
                statusCode: {
                    401: function() {
                        $('.ui-tabs-panel:visible').html("${ajax_session_expired}");
                    }
              },
              success : function(data) {
                  $("#productCategoryContainer").html(data);
                    $.ajaxSetup ({
    // Disable caching of AJAX responses
    cache: false
});

                  $.ajax({
                      url: "${get_taggedProd_url}",
                      data: {"questionnaireId":_questionnaireId},
                      dataType: "json",
                      success: function(data){
                          var productIds = data.products;
                          $.each(productIds,function(index,value){
                             var obj = $('input[name="'+value+'"]');
                             obj[0].checked = true
                             selectRow(obj[0]);
                          });
                      }
                  });
              }
            });

and if you need more details please look into this

Upvotes: 1

ndp
ndp

Reputation: 21996

The thing in this code that always screws me up is trying to get the check box selected. Make sure obj[0].checked = true actually works.

Upvotes: 0

Related Questions