Это мой первый вопрос здесь. Я использую этот сайт все время, но никогда не писал здесь.функция только работает один раз
Когда я вызываю функцию writeMessage(), когда флажок установлен, создается текстовое поле. Когда я снимаю флажок, текстовое поле удаляется. Когда я устанавливаю флажок во второй раз, функция не вызывается. Какие-либо предложения? Мне нужно, чтобы он отображал текстовое поле в любое время, когда флажок установлен, а не только в первый раз. Ниже мой код.
HTML:
<table>
<th>
<input type = "checkbox" name = "os0" id = "spaceForMsg" onClick = "writeMessage()">
<label for "gift"> Gift for someone</label>
</th>
</table>
<table >
<tr id = 'parent'>
<div id = 'printMsg'></div>
</tr>
</table>
Javascript функция:.
function writeMessage() {
var x = document.getElementById('spaceForMsg');
var docBody = document.getElementById('parent');
var element = document.createElement('textarea');
element.cols='60';
element.rows='8';
element.id = 'msgArea';
if (x.checked) {
give = 'Type your gift message here: ';
docBody.appendChild(element);
} else {
give = '';
y = document.getElementById('parent').parentNode;
y.removeChild(y.childNodes[0]);
}
document.getElementById('printMsg').innerHTML = give;
}
В качестве побочного примечания вы, вероятно, хотите только вызвать 'var element = document.createElement ('textarea');' когда вы на самом деле планируете добавлять узел. В противном случае вы делаете ненужную работу и делаете сборщик мусора больше, чем нужно :) – EyasSH
Не было бы лучше, если бы вы просто показывали и скрывали текстовое поле? это было бы просто – TechGirl
хорошо пункт! спасибо. – user2655352