2011-12-20 73 views
0

我正在使用選擇的原型。 我想根據第一個選擇框更新第二個選擇框。這個怎麼做? 我能夠觸發onchange事件,但我無法根據第一個選擇框中的onchange事件更新第二個選擇框。如何更新第二選擇基於第一個選擇框中選擇的原型的JavaScript?

<select class="chzn-select" id="one"> 
    <option>one</option> 
    <option>two</option> 
    <option>three</option> 
</select> 
<select class="chzn-select" id="two"> 
    </select> 


$$('#one').each(function(select) { 
    new Chosen(select); 
}) 
.invoke('observe', 'change', function() { 
    alert(document.getElementById("one").value); 

    //update the second select here 


}); 
$$('#two').each(function(select) { 
    new Chosen(select); 
}) 
.invoke('observe', 'change', function() { 
    alert(document.getElementById("two").value); 
}); 

回答

0

這是基於DOM例如更新代碼:

// get value of #one 
var v = document.getElementById("one").value; 

// get select #two 
var sel = document.getElementById("two"); 

// remove all options 
while (sel.childNodes.length > 0) { 
    sel.removeChild(sel.childNodes[0]); 
} 

// add 2 new options 
var o1 = document.createElement('option'); 
o1.innerHTML = v + '-one'; 
sel.appendChild(o1); 

var o2 = document.createElement('option'); 
o2.innerHTML = v + '-two'; 
sel.appendChild(o2); 

// update chosen 
Event.fire($("two"), "liszt:updated"); 
+0

喜它不工作。你可以在這裏檢查jsfiddle [鏈接](http://jsfiddle.net/rameshcharykotha/ZBKeW/22/) – 2011-12-20 21:07:53

+0

我還沒有寫更新事件的消防。現在它應該工作:) – Krzysztof 2011-12-20 21:23:08

+0

爲什麼downvote而它的工作?試試吧:[http://jsfiddle.net/Y2aHj/1/](http://jsfiddle.net/Y2aHj/1/) – Krzysztof 2011-12-21 15:35:43

相關問題