2013-10-11 3 views
0

У меня есть этот код для динамического HTML, но я не могу показать это по умолчанию, отображается в таблице при выборе опции, jsfiddle: http://jsfiddle.net/4DYCm/Как отобразить эту динамическую таблицу по умолчанию?

HTML:

 <tr> 
    <th>Number of Models:<title="Number of Models"></th> 

    <td><select id="numbermodels" name="numbermodels" autocomplete="off" onchange="buildTable(this.value);" > 

    <option value="1" >1</option > 
    <option value="2" >2</option > 
    <option selected="selected" value="3" >3</option > 
    <option value="4" >4</option > 
    <option value="5" >5</option > 
    <option value="6">6</option > 
    </select></td> 
    </tr> 

<table id="contentTable" border="1" name="contentTable"> 
    <!-- Fill table programmatically --> 
</table> 

JavaScript:

 function buildTable(val) 
    { 
var myTable =document.getElementById("contentTable"); 
var j=val; 
var rows = []; 
var cells = []; 

    while (myTable.hasChildNodes()) { 
    myTable.removeChild(myTable.lastChild); 
} 


for(var i = 0; i < 1; i++) 
{ 
    rows[i] = myTable.insertRow(i); 
    if(i%3==2)rows[i]; 
    cells[i] = []; 

    for(var x = 0; x < j ; x++) 
    { 
     cells[i][x] =document.createElement((x==0)?"th":"td"); 
     cells[i][x].innerHTML = (x==0)?"<input id=t name=t[] size=3>":"<input id=t1 name=t1[] size=3>"; 
     rows[rows.length - 1].appendChild(cells[i][x]); 
    } 
} 

    } 
buildTable(); 

Я попытался дать onload вместо onchange, но когда я даю это, таблица не генерируется, может кто-нибудь сказать мне, как отображать эту таблицу по умолчанию?

ответ

0

Вы не передаете значение функции, поэтому val не определено.

var sel = document.getElementById("numbermodels"); 
var value = sel.options[sel.selectedIndex].value; 
buildTable(value); 

Предполагается, что сценарий загружается после того, как на странице будут загружены элементы выбора и div.

http://jsfiddle.net/VC3uM/

+0

выше решение работает в jsfiddle, но когда я пытаюсь его в браузере т.е. Firefox, он не работает, я с той же проблемой, таблица генерируется только после того, как я выберу вариант, а не по умолчанию, что может быть причиной? – Sachin

+0

@Sachin Поскольку вы не запускаете его onload или после того, как элемент отображается на странице. – epascarello

+0

Вы говорите, мне нужно изменить событие onchange на onload, или это невозможно достичь в браузере, пожалуйста, объясните? – Sachin

0

попробовать

function createTable(){ 
    var sel = document.getElementById("numbermodels"); 
    var value = sel.options[sel.selectedIndex].value; 
    buildTable(value); 
} 

<td><select id="numbermodels" name="numbermodels" autocomplete="off" onchange="createTable();" > 
Смежные вопросы