2011-06-23 9 views
0

J'utilise $.get() dans mon application ASP.NET MVC 3 pour obtenir une réponse de la base de données de manière asynchrone. Je reçois la réponse correctement et en fonction de la réponse, je génère mon HTML dans une variable de chaîne et je l'ajoute finalement à un div déjà sur ma page de balisage. En mode débogage, il me montre le code HTML complet créé mais il n'est pas rendu dans le navigateur.JQuery ne rend pas HTML

Voici mon exemple de code

$.get("/Modules/FetchModuleActionsByModuleID", { ModuleID: ModuleID }, function (response) 
{ 
    if (response.replace(/"/g, '') != '{d:[]}' && response.replace(/"/g, '') != '{d:null}' && response.replace(/"/g, '') != '' && response != '') 
    { 
     var actions = eval('(' + response + ')'); 
     var moduleHtml=""; 
     if (actions.length > 0) 
     { 
      for (i = 0; i < actions.length; i++) 
      { 

       moduleHtml += "<div class='moduleFieldSetting'>"; 
       moduleHtml += "<span class='pdRL10x2 fl'><input type='checkbox' name='" + ModuleName + "_Actions' value='" + actions[i].ActionID + "' /></span>"; 
       moduleHtml += "<span>" + actions[i].ActionName + "</span>"; 
       moduleHtml += "<div class='clear'></div>"; 
       moduleHtml += "</div>"; 
      } 

      moduleHtml += "<div class='fr mt15'>"; 
      moduleHtml += "<span class='fr'><input type='button' class='inpuButtonAdd' value='Save' /> "; 
      moduleHtml += "<input type='button' class='inpuButtonAdd' value='Cancel' /> "; 
      moduleHtml += "</span>" 
      moduleHtml += "</div>"; 

      moduleHtml += "</div>"; 

      moduleHtml += "<div class='clear'></div>"; 
      moduleHtml += "</div>"; 
      moduleHtml += "</div>"; 
      moduleHtml += "<div class='clear'></div>"; 


      $("#divModuleDetails").append(moduleHtml); //appending to div 
     } 
    } 
}); 

Ce qui pourrait être la cause?

+0

Ce problème est dans IE seulement. Travailler dans FireFox – Vivek

+0

Quelle est la version d'IE que vous utilisez? – bhagyas

+0

Avez-vous essayé d'écraser 'moduleHTML' jusqu'à ce que le problème disparaisse? Cela vous donnera au moins une idée du problème. –

Répondre

0

regard sur cette ligne:

moduleHtml += "</span>" 

je pense que le problème est le script d'impression encore qu'une durée mais peut-être rien :)

checkout de toute façon ci-dessous l'optimisation de script je pense que cela devrait fonctionner;)

$.get("/Modules/FetchModuleActionsByModuleID", { ModuleID: ModuleID }, function (response) 
{ 
    if (response.replace(/"/g, '') != '{d:[]}' && response.replace(/"/g, '') != '{d:null}' && response.replace(/"/g, '') != '' && response != '') 
    { 
     var actions = eval('(' + response + ')'); 
     var moduleHtml; 
     if (actions.length > 0) 
     { 
      for (i = 0; i < actions.length; i++) 
      { 

       moduleHtml += "<div class='moduleFieldSetting'>" 
       + "<span class='pdRL10x2 fl'><input type='checkbox' name='" 
       + ModuleName 
       + "_Actions' value='" 
       + actions[i].ActionID 
       + "' /></span>" 
       + "<span>" 
       + actions[i].ActionName 
       + "</span>" 
       + "<div class='clear'></div>" 
       + "</div>"; 
      } 

      moduleHtml += "<div class='fr mt15'>" 
      +"<span class='fr'><input type='button' class='inpuButtonAdd' value='Save' /> " 
      + "<input type='button' class='inpuButtonAdd' value='Cancel' /> " 
      +"</span>" 
      + "</div>" 
      + "</div>" 
      + "<div class='clear'></div>" 
      + "</div>" 
      + "</div>" 
      + "<div class='clear'></div>"; 


      $("#divModuleDetails").append(moduleHtml); //appending to div 
     } 
    } 
}); 
+0

alors ... assurez-vous que vous avez la dernière version de jquery;) – memento