Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   appendChild и checkbox (https://javascript.ru/forum/dom-window/9405-appendchild-i-checkbox.html)

kinga3 14.05.2010 18:46

appendChild и checkbox
 
если чекбокс - checked: добовляетья хтмл, если not checked этот хтмл убираем. проблема в том что после 2 нажатия на чекбокс скрипт перестает работать. скрипт переделан мною с другого.. в яве я новичок. подскажите где копать?


<script type="text/javascript">
function acti() {
var kn = document.getElementById('qwe');
if(kn.checked)
{
var div = document.createElement("div");
div.innerHTML = "<input name=\"\" type=\"text\" />";
document.getElementById("sdw").appendChild(div);
}
else
{
var contDiv = document.getElementById("sdw");
contDiv.parentNode.removeChild(contDiv);
}
}
</script>

<input name="qwe" type="checkbox" id="qwe" onclick="acti()"/><br />
<div id="sdw"><div>

azazello 17.05.2010 15:16

contDiv.parentNode.removeChild(contDiv) - эта строчка удаляет твой <div id="sdw"><div>, в который ты пытаешь вставить <input>


function acti() {

var kn = document.getElementById('qwe');

if ( kn.checked ) {
var div = document.createElement("div");
div.innerHTML = "<input name=\"\" type=\"text\" />";
document.getElementById("sdw").appendChild(div);
} else {
var contDiv = document.getElementById("sdw");
//contDiv.parentNode.removeChild(contDiv);
contDiv.innerHTML = ''; - // лучше так, а вообще тут массу вариантов :)
}

}

subzey 17.05.2010 23:29

Установка элементу стиля display: none полностью убирает элемент из отображения, хотя в DOM'е он остается.
Возможно, это Вам пригодится.

kinga3 20.05.2010 09:14

azazello - спасибо, работает!
subzey - пригодиться. спасибо!


Часовой пояс GMT +3, время: 05:44.