Autor Zpráva
sysel
Profil
Nějak mi došly nápady. Pokusil jsem se vytvořit tabulku s živými buňkami, tak že po kliknutí na vybranou buňku se tato přemění na <input> a po odchodu zase změní na obyčejnou buňku a vložená hodnota se do ní vepíše. Následující kód celkem funguje, ale přál bych si, aby po kliknutí na buňku se po provedení změn rovnou vstoupilo do <input>u a pokud je v něm již nějaký text, byl tento označen.

<script>
function zapni(zde)
{ zde.childNodes[1].style.display="none";
  zde.childNodes[0].type='text';
  zde.childNodes[0].value=zde.childNodes[1].innerHTML;
  zde.childNodes[0].focus=true; // toto zjevně nestačí
}
function vypni(zde)
{ var ******* = zde.value;
  zde.type='hidden';zde.value = *******;
  zde.nextSibling.innerHTML   = *******;
  zde.nextSibling.style.display="block";
}
</script>
...
<td onclick="zapni(this);"><input type="hidden" onBlur="vypni(this)"><span>12</span></td>
sysel
Profil
Oh promiňte, při zápisu var hodnota = ..... mi ujela ruka a byl tam nevhodný překlep, takže teď jsou tam hvězdičky. :-/
sysel
Profil
Hm, tak stačilo číst chybové hlášení a manuály. Na řádce 6 jsem místo komentáře // toto zjevně nestačí - měl uvést: // toto je zjevná hloupost. Tento řádek jsem nahradil za:

zde.childNodes[0].select();

a vše funguje jak jsem si přál.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: