2013-07-17 65 views
0

在以下多選框中單擊更改按鈕時,我想填充id="p_prod中的所有選定項目「以顯示在id="s_prod"中,並在p_prod中刪除它們並單擊還原時,我想讓它們從s_prod刪除和重新填充他們p_prod在相同的順序以前它是..how做到這一點jquery從一個到另一個選擇選項

<select size="10" multiple="multiple" id="p_prod"> 
<option value="1">prod1</option>         
<option value="2">prod2</option> 
<option value="3">prod3</option> 
<option value="4">prod4</option> 
</select> 

<select mulitple="multiple" id="s_prod"> 
</select> 
<input type="button" id="change" value="change" onclick="val();"/> 
<input type="button" id="revert" value="revert" onclick="val();"/> 

function val() 
{ 
    $('#p_prod option:selected').removeAttr('selected'); 
} 
+0

而你嘗試過什麼嗎?搜索'jquery append'或其他東西。 – putvande

回答

2

可以使用option:selected得到selcted選項和附加到其他select使用appendTo(),這將刪除選項自動從第一選擇。

Live Demo

$('#p_prod option:selected').appendTo('#s_prod'); 

要恢復你需要存儲索引,你需要一些像這樣的事情,

Live Demo

$('#change').click(function() { 
    $('#p_prod option:selected').each(function() { 
     $(this).data('prevIndex', $(this).index()); 
     $(this).appendTo('#s_prod'); 
    }); 
}); 

$('#revert').click(function() {  
    debugger 
    $('#s_prod option').each(function() {   
     currentOptIndex = $(this).data('prevIndex'); 
     if(currentOptIndex > 0) 
      $('#p_prod option').eq(currentOptIndex).after(this);    
     else 
      $('#p_prod').prepend(this);    
    }); 
}); 
+0

另外我需要從p_prod中刪除相同的以及如何恢復到在s_prod中選擇的p_prod – Rajeev

+0

我有,現在好嗎? – Adil

+0

只需做相反的事情:'$('#s_prod option:selected')。appendTo('#p_prod');' – rtpHarry

相關問題