2014-10-16 4 views
0

Я делаю это на странице jsp другого приложения. Мне нужно заполнить значения в combobox на основе другого поля со списком. Я видел несколько сообщений, объясняющих это, но не могу заставить его работать на себя. Вот что я пробовал.Заполнение значений выпадающего списка на основе другого раскрывающегося списка с использованием javascript

<script type="text/javascript"> 

    function customChangefunction(){ 
     var target = window.document.getElementsByName("resultCombo"); 
     var src = window.document.getElementById("sampleCombo"); 
     var strUser = src.options[src.selectedIndex].value; 
     alert(strUser); 
     var colours = new Array('Black', 'White', 'Blue'); 
      var shapes = new Array('Square', 'Circle', 'Triangle'); 
     var names = new Array('John', 'David', 'Sarah'); 

     switch (strUser) { 
        case 'one': 
         target.options.length = 0; 
         for (i = 0; i < colours.length; i++) { 
          createOption(target, colours[i], colours[i]); 
         } 
         break; 
        case 'two': 
         target.options.length = 0; 
        for (i = 0; i < shapes.length; i++) { 
         createOption(target, shapes[i], shapes[i]); 
         } 
         break; 
        case 'three': 
         target.options.length = 0; 
         for (i = 0; i < names.length; i++) { 
          createOption(target, names[i], names[i]); 
         } 
         break; 
         default: 
          target.options.length = 0; 
         break; 
      } 
    } 
    function createOption(ddl, text, value) { 
       var opt = document.createElement("OPTION"); 
       opt.value = value; 
       opt.text = text; 
       ddl.options.add(opt); 
       opt.appendChild(text); 
      document.getElementById(ddl).appendChild(opt); 
     } 

Приведенный выше код не working.I должны сделать это без использования JQuery. Мой фактическое требование

if Combo1 is India then Combo2 should show Chennai,Delhi,Mumbai 
if Combo1 is USA then Combo2 should show New York,CA,etc.. 

У меня есть еще один вопрос. Предположим, что Combo2 уже имеет некоторые значения, это заменяет их этими значениями. Я хотел бы сделать это так.

Прошу прокомментировать это, прежде чем вы пометите этот вопрос как дубликат или его закрытие.

+0

Вы можете использовать ajax для динамической загрузки содержимого во втором выпадающем списке –

+0

Я полагаю, что это не обязательно. Мне нужно что-то похожее на [this] (http://jsfiddle.net/e6hzj8gx/4) –

ответ

0
document.getElementById("food").onchange = function(Event){ 
    var contents = document.getElementById("contents"); 
    contents.innerHTML = ""; 
    for(var i in data[this.value]){ 
     var option = document.createElement("option"); 
     option.setAttribute('value',data[this.value][i]); 
     option.text = data[this.value][i]; 
     contents.appendChild(option); 
    } 
    var expect_data = Event.target.value == "Fruits" ? "Vegetables" : "Fruits"; 
    for(var i in data[expect_data]){ 
     var option = document.createElement("option"); 
     option.setAttribute('value',data[expect_data][i]); 
     option.text = data[expect_data][i]; 
     contents.appendChild(option); 
    } 
} 
+0

Не могли бы вы дать какое-то описание? –

+0

var option = document.createElement ("option"); option.setAttribute ('значение', data [expect_data] [i]); option.text = данные [expect_data] [i]; contents.appendChild (опция); Эти четыре строки предназначены для создания опции в списке выбора. – Sunny

Смежные вопросы

 Смежные вопросы