2013-09-25 6 views
0

Я ищу для создания выпадающего списка, основанного на предыдущем выборе, я попытался создать его здесь [скрипка] ((http://jsfiddle.net/KarinaMcG/krn32/1/), но моя вторая выпадающая папка не заселена. Что мне не хватает/что-то не так?Выпадающий список не работает?

HTML

<div>System Selector: 
    <select class="systemDropDown"> 
     <option value="">--Select System--</option> 
     <option value="Demandware">Demandware</option> 
     <option value="Site Replication">Site Replication</option> 
     <option value="3rd Party Request">3rd Party Request</option> 
     <option value="Log-in (all others)">Log-in (all others)</option> 
     <option value="Log-in (Global Collect)">Log-in (Global Collect)</option> 
     <option value="Global Collect Issue">Global Collect Issue</option> 
     <option value="Store Locator">Store Locator</option> 
     <option value="New Product Request">New Product Request</option> 
     <option value="Other">Other</option> 
    </select> 
</div> 
<div>Country: 
    <select class="countryDropDown"> 
     <option value="">--Select Country--</option> 
    </select> 
</div> 

Javascript

jQuery(document).ready(function ($) { 

    $(".systemDropDown").change(function() { 
     var system = $(this).val(); 

     function fillcountryDropDown(systemCountryOption) { 
      $.each(systemCountryOption, function (val, text) { 
       $('.countryDropDown').append(
       $('<option></option>').val(val).html(text)); 
      }); 
     } 

     function clearCountryDropDown() { 
      $('.countryDropDown option:gt(0)').remove(); 
     } 
     if (system == 'Demandware') { 
      clearCountryDropDown(); 

      var demandwareCountryOption = { 

       SPAIN: 'Spain', 
       IRELAND: 'Ireland', 
       USA: 'Usa' 
      }; 

      fillCountryDropDown(demandwareCountryOption); 
     } else if (system == 'Site Replication') { 
      clearCountryDropDown(); 
      var sitereplicationCountryOption = { 

       LONDON: 'London', 
       LIVERPOOL: 'Liverpool', 
       DERBY: 'Derby' 
      }; 
      fillCountryDropDown(sitereplicationCountryOption); 
     } 
     var countryOptions = { 
      val1: 'text1', 
      val2: 'text2' 
     }; 

    }); 

}); 

ответ

3

JavaScript чувствителен к регистру.

Вы определяете функцию здесь:

function fillcountryDropDown(systemCountryOption) 
{ 
    // implementation 
} 

И называют его здесь:

fillCountryDropDown(demandwareCountryOption); 

Изменить определение для fillCountryDropDown и jsFiddle, кажется, работает в этой точке. (Также выберите jQuery для загрузки, который я уверен, что вы делаете на странице, но забыли на jsFiddle.)

+1

Проклятье. вы избили меня на 46 секунд – MarsOne

+0

@KarinaMcGourty: Как он не работает? Когда я делаю это одно изменение в jsFiddle (и выбираю jQuery в левом меню) и повторно запускаю код, второй раскрывающийся список заполняется в любое время, когда первый изменяется. – David

+0

@David Извините, Дэвид работает, у меня был старый jsFiddle открытый, что я вносил изменения, я плохо, спасибо за вашу помощь! :) –

1

Вам это не понравится!

Javascript чувствителен к регистру ...

Ваша функция fillcountryDropDown не называется. вам необходимо сменить имя функции на fillCountryDropDown

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