Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Label в Javascript (https://javascript.ru/forum/misc/51310-label-v-javascript.html)

usa-1500 01.11.2014 22:31

Label в Javascript
 
Решил попробовать создать вторую форму с метками и вывести. Никак не выводит form2. Что нужно исправить в коде чтобы вывело?

<!DOCTYPE HTML>

  <meta charset="utf-8">
  <title>SELECT</title>
 </head>
 <body>
<form name="form">
  <select name="genre" multiple>
    <option value="blues" selected>Мягкий блюз</option>
    <option value="rock" selected>Жёсткий рок</option>
    <option value="classic" selected>Классика</option>
  </select>
</form>
<br>
<form name="form2">
  <select name="music" multiple>
    <option value="executor" selected>Исполнитель</option>
    <option value="nationality" selected>Национальность</option>
    <option value="place" selected>Место проведения</option>
  </select>
</form>

<script>

var form = document.body.children[0];
var select = form.elements.genre;

for (var i=0; i<=select.options.length; i++) {
  var option = select.options[i];

  if(option.selected) {
    document.writeln(option.value);
  }

}


var form2 = document.body.children[0];
var select = form2.elements.music;

for (var j=0; j<=select.options.length; j++) {
  var option2 = select.options[j];

  if(option2.selected) {
  	document.writeln(option2.value);
  }
}
</script>

 </body>
</html>

рони 01.11.2014 22:44

usa-1500,
не использовать document.writeln или document.write пока не освоите азы.

Vlasenko Fedor 02.11.2014 00:16

<style>
  label {
    margin: 5px;
    padding: 4px 8px;
    border: 2px dotted green;
    cursor: pointer;
  }
  .music {
    margin-bottom: 20px;
  }
</style>
<form name="form">
  <div class="music">
    <select name="genre" multiple>
      <option value="blues" selected>Мягкий блюз</option>
      <option value="rock" selected>Жёсткий рок</option>
      <option value="classic" selected>Классика</option>
    </select>
  </div>
</form>
<br>
<form name="form2">
  <div class="music">
    <select name="music" multiple>
      <option value="executor" selected>Исполнитель</option>
      <option value="nationality" selected>Национальность</option>
      <option value="place" selected>Место проведения</option>
    </select>
  </div>
</form>
<script>
  function insValue(frm, nodeList) {
    var lbl = document.createElement('label');
    var fragment = document.createDocumentFragment();
    var tmp;
    for (var i = 0; i < nodeList.length; ++i) {
      if (nodeList[i].selected) {
        tmp = lbl.cloneNode();
        tmp.innerHTML = nodeList[i].value;
        fragment.appendChild(tmp);
      }
    }
    frm.appendChild(fragment);
  }
  var form1 = document.form;
  var form2 = document.form2;
  var options1 = form1.genre.options;
  var options2 = form2.music.options;
  insValue(form1, options1);
  insValue(form2, options2);
</script>

:victory: Так получше будет
Еще пример http://learn.javascript.ru/play/PbjEy


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