2010-01-03 2 views
0

Я использую следующий JavaScript, чтобы добавить количество входов на основе номера в выпадающем меню. Он отлично работает в firefox и chrome, но в IE7 все входы остаются на новой строке.IE7 сбой с appendChild() для поля ввода

function add(number) 
{ 
var foo = document.getElementById("listInputs2"); 
var count = 1; 
foo.innerHTML = ""; 

while (count <= (number)) 
{ 
//Create an input type dynamically. 
var element = document.createElement("input"); 

//Assign different attributes to the element. 
element.setAttribute("name", "value"+count); 
element.setAttribute("id", "value"+count); 
element.setAttribute("size", "60"); 
element.setAttribute("type", "text"); 
element.setAttribute("value", ""); 

//Append the element in page (in span). 
foo.innerHTML+=('<li class="inputCount"><label for="value'+count+'">#'+count+'</label>'); 
foo.appendChild(element); 
foo.innerHTML+=("</li>"); 
count += 1; 
} 

} 

ответ

0

Я получаю ту же ошибку в Firefox: вы добавляете ввод как дочерний элемент listInput2, а не li.

Вот фрагмент кода, который работает:

function add(number) 
{ 
var foo = document.getElementById("listInputs2"); 
var count = 1; 
foo.innerHTML = ""; 

while (count <= (number)) 
{ 
//Create an input type dynamically. 
var input = "<input name='value"+count+"' id='value"+count+"' size='60' type='text' value=''>"; 

//Append the element in page (in span). 
foo.innerHTML+='<li class="inputCount"><label for="value'+count+'">#'+count+'</label>'+input+'</li>'; 
count += 1; 
} 

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