Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Помогите. Динамическое создание элементов! (https://javascript.ru/forum/dom-window/29272-pomogite-dinamicheskoe-sozdanie-ehlementov.html)

frundik 21.06.2012 19:34

Помогите. Динамическое создание элементов!
 
Добрый день !
Есть форма на которой есть связка: выпадающий список, по вы выбору которого динамически создается несколько выпадающих списков. Реализовано вот так:
<script>   
function Add(){
var val = document.getElementById('sel').value  
var parent = document.getElementById('list');   
parent.innerHTML = '';  
for(i=0; i<val; i++){  
        var child =  document.createElement('select');    
        input = parent.appendChild(child);   
        input.setAttribute('type','text'); 
        input.setAttribute('name','name'+(parent.childNodes.length-1)); 
    }  

} 
Add(); 
</script>


<select id="sel" onchange="Add()" name='choice'>   
  <option value='1'>1</option> 
  <option value='2'>2</option> 
  <option value='3'>3</option>
  <option value='4'>4</option> 
  <option value='5'>5</option> 
</select>
<div id="list"></div>


Как вы видите при выборе из списка значения, рядом создается выбранное количество выпадающих списков.

Дело в том, что таких связок у меня на странице может быть неопределенное количество. Как мне это реализовать ? Не создавать же функции Add1...AddX для каждого элемента?

Как мне в одной функции реализовать ? По идее в функцию должен передаваться параметр id из основного select. Но как это сделать ?
Тогда бы было бы все так

var idw = ID элемента из которого вызвана функция ADD (например, это sel1
var val = document.getElementById(idw).value

ну дальше понятно, что меняется и все остальное в зависимости от значение idw

Deff 21.06.2012 20:03

frundik,
добавьте параметров в функцию
function Add(idw,val){

select тогда будет выглядеть так

<select id="sel" onchange="Add(this.id,this.value)" name='choice'>

frundik 21.06.2012 20:16

Спасибо!
Аж стыдно, что сам не догадался! :(


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