2010-04-12 3 views
2

J'ai deux listes déroulantes dans ma page JSPJavaScript + Ajout d'éléments dans la liste déroulante

1. lstA 
    test1 
    test2 
    test3 
    test4 

2. lstB 

maintenant sur la sélection de Lsta, je veux remplir tous les éléments de Lsta dans LSTB sauf celui de sélection, aussi le contenu de lstA devrait rester le même.

Comment puis-je y parvenir?

J'ai essayé de le faire, mais à partir de lstA, certains éléments aléatoires sont supprimés, ce qui est plutôt câblé.

+0

JSP ou Javascript? Dans ce dernier cas, cela vous dérangerait de publier un peu de votre code HTML/JS. –

Répondre

8

vous avez presque eu correct dans votre réponse là-bas. Choses à noter: vous devez effacer la liste des clients avant d'ajouter, sinon vous finirez avec de plus en plus d'éléments dessus, et vous devez cloner l'option avant de l'ajouter à la liste des clients, car un nœud ne peut exister que chez 1 parent à tout moment.

cela a été testé et fonctionne pour moi:

<html><body> 
<script language="javascript"> 
function populateClient() { 
    var serverList = document.getElementById("dropdown1"); 
    var clientList = document.getElementById("dropdown2"); 

    clientList.options.length = 0; // this removes existing options 

    for (var i = 0; i <= serverList.options.length; i++) { 
     if (!serverList.options[i].selected) { 
      clientList.options.add(serverList.options[i].cloneNode(true)); // cloneNode here 
     } 
    } 
} 
</script> 

<select id="dropdown1" onchange="populateClient()"> 
    <option value="value1">value1</option> 
    <option value="value2">value2</option> 
    <option value="value3">value3</option> 
    <option value="value4">value4</option> 
    <option value="value5">value5</option> 
</select> 
<select id="dropdown2"> 
</select> 
</body></html> 
0
function populateClient(selectItem, clientItem) { 
      var serverList = selectItem; 
      for(var i = 1; i <= serverList.options.length; i++) { 
       if (!serverList.options[i].selected) 
        clientItem.options.add(serverList.options[i]); 
      } 
     } 

Où selectItem et clientItem sont des listes déroulantes. Lorsque je fais cela, certaines données sont aléatoirement remplies dans clientItem et certains éléments de selectItem sont supprimés.

0

Essayez cette

<script type="text/javascript"> 
    function AddItem() 
    { 
     // Create an Option object  
     var opt = document.createElement("option");   

     // Assign text and value to Option object 
     opt.text = "New Value"; 
     opt.value = "New Value"; 

     // Add an Option object to Drop Down List Box 
     document.getElementById('<%=DropDownList.ClientID%>').options.add(opt); 
    } 
<script /> 

La valeur ajoutera à la liste déroulante.

Questions connexes