2012-01-25 2 views
5

Я использую Ajax вызова для принести список для моего падения вниз и назначить его на HTML, отлично работает для Mozilla над Крома, но для IE отображает пустой выпадающий списокJavaScript innerHTML не работает для IE?

var xmlhttp; 

var strURL = "selectedu.php?selectward="+selectward; 

if (window.XMLHttpRequest) 
{// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
} 
else 
{// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
} 
xmlhttp.onreadystatechange = function(){ 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
     if(xmlhttp.responseText=="NOER") 
     { 
      alert("Select ER Type"); 
     } 
     else 
     { 
      document.getElementById(id).innerHTML=xmlhttp.responseText; 
     } 
    } 
} 
xmlhttp.open("GET",strURL,true); 
xmlhttp.send(); 
+0

Можете ли вы разместить еще несколько кодов для этого? Если возможно, попробуйте http://jsfiddle.net –

+0

вы можете указать: какой tagName является вашим элементом и как вы создаете и создаете свой XHR-вызов? – BiAiB

+0

Можете ли вы показать нам больше кода? – Oybek

ответ

7

Свойство innerHTML имеет некоторые проблемы IE при попытке добавить или обновить элементы формы, обходной путь, чтобы создать DIV и установить свойство innerHtml на том, что перед добавлением в DOM:

var newdiv = document.createElement("div"); 
newdiv.innerHTML = xmlhttp.responseText; 
var container = document.getElementById(id); 
container.appendChild(newdiv); 
4

Если документ XHTML ИЭ не позволит innerHTML недвижимости для установки непосредственно. Вам нужно будет разобрать responseText на элементы DOM и заменить содержимое существующего элемента этими элементами.

0

Возможно, вы можете использовать append(). Пример:

$get('yourTargetObjectId').append('<p>this test to add</p>'); 

append() содержание вставок в конце выбранного элемента и использовать prepend() для вставки в начале выбранного элемента.

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