Создание и добавление 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, время: 01:16. |