Показать сообщение отдельно
  #1 (permalink)  
Старый 28.08.2017, 21:58
Интересующийся
Отправить личное сообщение для Lun2 Посмотреть профиль Найти все сообщения от Lun2
 
Регистрация: 28.08.2017
Сообщений: 14

Как программно добавить "input" типа "radio"
Здравствуйте!
Задача - к имеющемуся блоку радио-кнопок <input>, заданному в html, программно добавить еще одну радиокнопку с текстом и реакцию на событие onchange.
Посмотрите, пожалуйста, на код - он добавляет радио-кнопку, но событие onchange в нем не работает и ТЕКСТ радио-кнопки ("qq") на экране не высвечивается. Если раскомментировать 2 строки внизу, результат не меняется.
Подскажите, пожалуйста, что не так (сами понимаете, в javascript я новичок):


<!DOCTYPE html>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<body>

<div>
    <div id="player"  style="float: left">
    </div >
    <div id="speed_buttons">
        <input type="radio" name="play_back_rate" value =4>Ускор = 4<br>
        <input type="radio" name="play_back_rate" value =2>Ускор = 2<br>
        <input type="radio" name="play_back_rate" value =1 checked>Норм = 1<br>
        <input type="radio" name="play_back_rate" value =0.5>Замедл = 0.5<br>
    </div>
</div>
<br clear="all">


</body>
<script>

    // получаем ссылку на блок с кнопками (div)
    var radio_block = document.getElementById("speed_buttons");
    // создаем новый input
    var new_speed = document.createElement('input');

    // устанавливаем атрибуты, события вновь созданного input-a
    new_speed.onchange = 'alert("work!");';
    new_speed.name="play_back_rate";
    new_speed.type = "radio";
    new_speed.value = 99;

    // ХОЧУ, ЧТОБЫ ВОЗНИК ЭТОТ ТЕКСТ, НО НЕ ВЫСВЕЧИВАЕТСЯ:
    new_speed.innerHTML = 'qq<br>';

    // раскомментирование 2 строк далее не помогает
    // new_text = document.createTextNode("qqq");
    // new_speed.appendChild(new_text);
    radio_block.appendChild(new_speed);


</script>

</html>
Ответить с цитированием