Autor Zpráva
Birkof
Profil
Mám dva textové inputy a mezi ně potřebuju vložit další input, snažím se o to níže uvedeným skriptem, ale něco dělám špatně, nevíte co?

<body>
<script language="JavaScript" type="text/javascript">
function pridej()
{
var newInput = document.createElement('input');
newInput.setAttribute("id","inp3");
newInput.setAttribute("type","text");
document.getElementById("inp1").appendChild(newInput);
};
</script>
<input type="text" id="inp1" value="aaa"/>
<input type="text" id="inp2" value="bbb"/><br>
<input type="button" id="d1" value="pridej input" onclick="pridej()" />
</body>
Aleš Janda
Profil
appendChild znamená "připoj potomka". Důležité je to slovo "potomek". Potomka může mít DIV, FIELDSET nebo něco párového, ale INPUT žádného potomka nemá. Proto ani nemůžeš žádného vložit ;-)

Udělal bych to nějak takhle:

<body>
<script language="JavaScript" type="text/javascript">
function pridej()
{
var newInput = document.createElement('input');
newInput.setAttribute("id","inp3");
newInput.setAttribute("type","text");
document.getElementById("vlozeni").appendChild(newInput);
};
</script>
<input type="text" id="inp1" value="aaa"/>
<span id="vlozeni"></div>
<input type="text" id="inp2" value="bbb"/><br>
<input type="button" id="d1" value="pridej input" onclick="pridej()" />
</body>

to by mělo jít.
Dero
Profil
Ještě snazší by bylo využití například metody insertBefore: http://www.w3schools.com/dom/met_element_insertbefore.asp
Birkof
Profil
Super, dík za rady. Už to fachčí.

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:

0