Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Pouze tento týden sleva až 80 % na e-learning týkající se C a C++. Zároveň využij akce až 80 % zdarma při nákupu e-learningu - více informací.
c week
Avatar
alex
Člen
Avatar
alex:18.9.2016 20:40

Ahoj ,

snazim sa dynamicky tvorit tabulku , kazdy stlpec obsahuje input , no vzdy ked pridam dalsi riadok , hodnoty vsetkych inputov v predchadzajucich riadkoch sa nadstavia naspat na defaultnu hodnotu.

priklad:

<table>
  <tbody>

  </tbody>
</table>
var table = document.querySelector('table tbody');

window.onkeydown = function(){
        table.innerHTML+='<tr><td><input type=number value=1/></td></tr>';
}

Stretol sa niekto s podobnym problem / vedel by poradit ako to opravit? Vyvtvarat riadky pomocou createElement() atd by bolo zdlhave kedze stlpcov bude viac.
DIk!

 
Odpovědět
18.9.2016 20:40
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Michal
Člen
Avatar
Odpovídá na alex
Michal:18.9.2016 20:46

Ahoj, je to tím, že innerHTML k přepsání třeba jediného řádku tabulky musí přepsat tabulku celou. A protože obsah inputů není součástí HTML kostry, vymaže se. Zkus to pomocí appendChild, mělo by to fungovat:

var table = document.querySelector('table tbody');

window.onkeydown = function(){
   var tr = document.createElement('tr');
   tr.innerHTML = '<td><input type=number value=1/></td>';
   table.appendChild(tr);
}

Je to, jak píšeš, o něco delší, ale 3 řádky nejsou nic strašného.

Editováno 18.9.2016 20:47
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět
18.9.2016 20:46
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.