Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Динамическое создание элементов. Не работает onclick (https://javascript.ru/forum/dom-window/49107-dinamicheskoe-sozdanie-ehlementov-ne-rabotaet-onclick.html)

Master_Sergius 30.07.2014 19:32

Цитата:

Сообщение от Erolast (Сообщение 323483)
Прочти статью по ссылке, что дал Aetae.
Нельзя использовать document.write после того, как документ загружен.

Это я понял, но почему ф-ия с алертом не работает?

рони 30.07.2014 19:35

Master_Sergius,
попробуйте переписать свой код и неиспользовать это
Цитата:

Сообщение от Master_Sergius
document.write

Цитата:

Сообщение от Master_Sergius
start()


Master_Sergius 31.07.2014 13:13

Переписал, это заработало! Теперь, пытаюсь создать область с радио кнопками, и они без подписей получаются...

var question = document.createElement("p");
  question.setAttribute('class', 'question');
  question.setAttribute('id', 'question');
  question.innerHTML = 'Is it your intension or somebody\'s offer?';
  document.body.appendChild(question);
  var fieldset = document.createElement("fieldset");
  var legend = document.createElement("legend");
  legend.innerHTML = 'Choose one of:';
  fieldset.appendChild(legend);
  var option = document.createElement("input");
  option.setAttribute('type', 'radio');
  option.setAttribute('name', 'answer');
  option.setAttribute('id', 'a1');
  option.setAttribute('value', 'a1');
  fieldset.appendChild(option);
  option.innerHTML = 'my intension';
  var br = document.createElement("br");
  fieldset.appendChild(br);
  var option = document.createElement("input");
  option.setAttribute('type', 'radio');
  option.setAttribute('name', 'answer');
  option.setAttribute('id', 'a2');
  option.setAttribute('value', 'a2');
  option.innerHTML = 'somebody\'s offer';
  fieldset.appendChild(option);
  document.body.appendChild(fieldset);


Тобишь вот этих option.innerHTML не видно. Но когда беру инспект елемент, то код вроде всё ок, по образу и подобию написал чисто хтмл и всё ок. В чём может быть проблема?

Erolast 31.07.2014 15:02

А ты где-нибудь видел, чтобы у инпутов был innerHTML?

И еще совет - если в коде несколько раз повторяется одно и то же, то код херня. Повторающиеся участки выноси в функции. Во-первых, такой код будет быстрее писать, во-вторых, легче читать, в-третьих, как следствие первого и второго, легче расширять, в-четвертых - будет меньше вероятность ошибиться.

Master_Sergius 31.07.2014 15:17

А как тогда создать скриптом инпуты радиобаттоны? В обычных кнопках - велью - подпись

Master_Sergius 01.08.2014 00:35

Спасибо, через лабел работает. Но, если просто писать сам код хтмл вот так:

<fieldset>
<legend>Choose one of:</legend>
<input type="radio" name="answer" id="a1" value="a1">answer 1</input>
<br />
<input type="radio" name="answer" id="a2" value="a2">answer 2</input>
</fieldset>


То есть подписи без лабелов

Erolast 01.08.2014 08:54

Нет, это не подпись. Это просто текст после инпута. Браузер отбрасывает ненужный закрывающий тег, и получается так:
<fieldset>
<legend>Choose one of:</legend>
<input type="radio" name="answer" id="a1" value="a1">answer 1
<br />
<input type="radio" name="answer" id="a2" value="a2">answer 2
</fieldset>

Master_Sergius 02.08.2014 11:51

Большое всем спасибо! Всё теперь получается. Как тему закрыть? Или позначить, что "решено"?

Erolast 02.08.2014 12:43

Никак. Зачем это?

Master_Sergius 02.08.2014 15:57

Ну, во-первых, кому-то решения на схожие вопросы нужны, а вот тут хоп и есть с пометкой решено. И все решенные в топ помещаются, чтоб видно было или ещё как-то. Во-вторых, чтоб больше не раздували тему до ненужных размеров.


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