Создание и добавление checkbox в форму
Добрый день.
Пытаюсь создать новый input и вставить его в определенное место в форме. Однако он не отображаеться на форме. function myFunction() { var myCheck = document.getElementById('1'); var myCheckNew = document.createElement('input'); myCheckNew.type = "checkbox"; myCheckNew.name = "computer"; var myText = document.createTextNode('Sport3'); myCheckNew.appendChild(myText); document.MyForm.insertBefore(myCheckNew, myCheck); <form name = 'MyForm'> <input type="checkbox" name="computer" id=1>Спорт2 <input type="checkbox" name="computer" id=2> Спорт3 <input id=myinput2 type="submit" value="создать" onClick="myFunction()"> </form> Подскажите, пожалуйста, в чем я ошибаюсь. |
У чекбоксов не может быть детей, поэтому если хотите добавить рядом подпись, то добавляйте ее рядом, а лучше всего поместить и подпись, и чекбокс внутрь label.
function crCheckBox(name, title) { var ie = !!document.releaseCapture; var c = document.createElement(ie ? ['<input name="', name, '" />'].join('') : 'input'); // IE: The NAME attribute cannot be set at run time on elements dynamically created with the createElement method. if (!ie) c.name = name; c.type = 'checkbox'; var l = document.createElement('label'); l.appendChild(c); l.appendChild(document.createTextNode(title)); return l; } function myFunction() { var bf = document.getElementById('1'); bf.parentNode.insertBefore(crCheckBox('computer', 'Sport3'), bf); } |
Да, Ваш метод добавляет подпись рядом. Однако чекбокс мелькает и тут же пропадает.
|
Видимо, у вас дальше там что-то происходит, что его убирает. Вероятно, сабмит формы, после чего загружается снова форма без чекбокса.
|
О-о-о. Семен-семенович. Точно. Спасибо за помощь. Все отлично работает.
|
Часовой пояс GMT +3, время: 09:33. |