[Spusť si oboje v IExploreru]
1. Kde je chyba
<html><head></head><body>
<table id="ucty" width="100%" cellpadding="4" cellspacing="0" border="1">
<tr> <td>BUNKA1</td> <td>BUNKA2</td> <td>BUNKA3</td> <td>BUNKA4</td> <td>BUNKA5</td> <td>BUNKA6</td> </tr>
</table>
<script>
var user_no=22;
var oTable = document.getElementById("ucty");
/************* Co provede IE ve tvém kódu, kde používáš: [table].innerHTML = "xxxx" *************/
var obsah = oTable.innerHTML; /* původní obsah */
alert(obsah);
oTable.innerHTML = obsah; /* U tabulky tuto operaci nelze provést => v IE způsobí chybu */
var obsah = oTable.innerHTML + "<TR><TD><INPUT type='text' value=' . . . . ' /></TD></TR>"; /* nový obsah */
alert(obsah);
oTable.innerHTML = obsah; /* TOTÉŽ => v IE způsobí chybu */
</script>
</body></html>
2. Náprava
<html><head></head>
<body>
Max_user (type=hidden): <input type='text' id='max_user' name='max_user' value='22' /><br />
<table id="ucty" width="100%" cellpadding="4" cellspacing="0" border="1">
<tr> <td>BUNKA1</td> <td>BUNKA2</td> <td>BUNKA3</td> <td>BUNKA4</td> <td>BUNKA5</td> <td>BUNKA6</td> </tr>
</table>
<script>
var user_no=22;
var oTable = document.getElementById("ucty");
/******************************************* Správný způsob: ************************************************/
var oRow = oTable.insertRow(-1); /* vložit na konec tabulky prázdný řádek */
var oCell = oRow.insertCell(-1); /* vložit na konec řádku buňku a do ní obsah */
oCell.innerHTML = "<input type='text' name='login_"+user_no+"' value='' />";
var oCell = oRow.insertCell(-1); /* .......další buňku */
oCell.innerHTML = "<input type='password' name='heslo_"+user_no+"' value='' />";
var oCell = oRow.insertCell(-1); /* .......další buňku */
oCell.innerHTML = "<select name='prava_"+user_no+"'> <option value='none'> --- </option> <option value='redaktor'>Redaktor</option> <option value='admin'>Admin</option> </select>";
var oCell = oRow.insertCell(-1); /* .......další buňku */
oCell.innerHTML = "<input type='text' name='name_"+user_no+"' value='' />";
var oCell = oRow.insertCell(-1); /* .......další buňku */
oCell.innerHTML = "<input type='text' name='surname_"+user_no+"' value='' />";
var oCell = oRow.insertCell(-1); /* .......další buňku */
oCell.innerHTML = "<input type='text' name='mail_"+user_no+"' value='' />";
</script>
<script id="kod">
/************************************************ HOTOVÁ FUNKCE: ************************************************************/
function AddUser(user_no)
{
var row = document.getElementById("ucty").insertRow(-1);
row.insertCell(-1).innerHTML="<input type='text' name='login_"+user_no+"' value='' />";
row.insertCell(-1).innerHTML="<input type='password' name='heslo_"+user_no+"' value='' />";
row.insertCell(-1).innerHTML="<select name='prava_"+user_no+"'><option value='none'></option><option value='redaktor'>Redaktor</option><option value='admin'>Admin</option></select>";
row.insertCell(-1).innerHTML="<input type='text' name='name_"+user_no+"' value='' />";
row.insertCell(-1).innerHTML="<input type='text' name='surname_"+user_no+"' value='' />";
row.insertCell(-1).innerHTML="<input type='text' name='mail_"+user_no+"' value='' />";
document.getElementById("max_user").value=++user_no;
}
</script>
<pre style='color:blue;font-size:12px'>
<script>
var txt=document.getElementById("kod").innerHTML;
document.write(txt,txt.replace(/&/g,'&').replace(/>/g,'>').replace(/</g,'<'));
</script>
</pre>
</body>
</html>
Spustit + otestovat v jiných browserech (pro jistotu!!!!). Kód<=copy/paste: