2016-01-12 4 views
0

Выберите страну, которая будет определять список городов во втором раскрывающемся списке.имя переменной в Javascript (в конкретном случае)

https://jsfiddle.net/k18etgex/11/

Он работает со странами имя, которое является одним словом, такие, как «УЦ», «pháp», «МОЯ».

var Úc = [ 
    {display: "Canberra", value: "Canberra" }, 
    {display: "Sydney", value: "Sydney" }, 
    {display: "Melbourne", value: "Melbourne" }, 
    {display: "Perth", value: "Perth" }, 
    {display: "Gold Coast ", value: "Gold-Coast" }]; 

var Pháp = [ 
    {display: "Paris", value: "Paris" }, 
    {display: "Avignon", value: "Avignon" }, 
    {display: "Strasbourg", value: "Strasbourg" }, 
    {display: "Nice", value: "Nice" }]; 

Но она не работает со страной, название которой состоит из двух слов, таких как «Нат Ban»

var Nhật Bản = [ 
    {display: "Tokyo", value: "Tokyo" }, 
    {display: "Osaka", value: "Osaka" } 
    ]; 

И я не позволил ничего менять в первом раскрывающемся списке.

Country: 
      <select name="departure_country[]" data-required="1" data-type="select"> 
            <option value="">- Chọn nước -</option> 
                 <option value="Mỹ">Mỹ</option>      <option value="Úc">Úc</option>      <option value="Pháp">Pháp</option> 
          <option value="Nhật Bản">Nhật Bản</option> 
          </select> 

Как исправить эту проблему?

+0

положить подчеркивание между ними. 'var Nhật_Bản' Чтение: Идентификатор JavaScript должен начинаться с буквы, подчеркивания (_) или знака доллара ($); последующие символы также могут быть цифрами (0-9). Поскольку JavaScript чувствителен к регистру, буквы включают символы «A» - «Z» (верхний регистр) и символы «a» - «z» (строчные буквы). –

+1

Имена переменных не должны иметь специальных символов, пробелов или зарезервированных слов. Не делай этого. Имена переменных могут быть то, что вы хотите, не нужно извлекать из html, это плохая практика, и она возвращает наиболее распространенные проблемы и терпит неудачу. –

+0

'

ответ

2

Поместите различные массивы в один объект, доступ через [] нотации.

var cities = { 
 

 
    "Úc": [{ 
 
    display: "Canberra", 
 
    value: "Canberra" 
 
    }, { 
 
    display: "Sydney", 
 
    value: "Sydney" 
 
    }, { 
 
    display: "Melbourne", 
 
    value: "Melbourne" 
 
    }, { 
 
    display: "Perth", 
 
    value: "Perth" 
 
    }, { 
 
    display: "Gold Coast ", 
 
    value: "Gold-Coast" 
 
    }], 
 

 
    "Pháp": [{ 
 
    display: "Paris", 
 
    value: "Paris" 
 
    }, { 
 
    display: "Avignon", 
 
    value: "Avignon" 
 
    }, { 
 
    display: "Strasbourg", 
 
    value: "Strasbourg" 
 
    }, { 
 
    display: "Nice", 
 
    value: "Nice" 
 
    }], 
 

 
    "Nhật Bản": [{ 
 
    display: "Tokyo", 
 
    value: "Tokyo" 
 
    }, { 
 
    display: "Osaka", 
 
    value: "Osaka" 
 
    }] 
 
}; 
 

 
(function($) { 
 
    $('[name="departure_country[]"]').change(
 
    function() { 
 
     var country = $(this).val(); 
 
     
 
     var clist = cities[country]; 
 
     
 
     var dep = $('[name="departure[]"]'); 
 
        
 
     dep.empty().append('<option>--select--</option>'); 
 
     
 
     $(clist).each(
 
     function(i, v) { 
 
      $('<option>').text(v.display).val(v.value).appendTo(dep); 
 
     } 
 
    ); 
 
     } 
 
); 
 
})(jQuery);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<select name="departure_country[]" data-required="1" data-type="select"> 
 
    <option value="">- Chọn nước -</option> 
 
    <option value="Mỹ">Mỹ</option> 
 
    <option value="Úc">Úc</option> 
 
    <option value="Pháp">Pháp</option> 
 
    <option value="Nhật Bản">Nhật Bản</option> 
 
</select> 
 

 
<select name="departure[]" data-required="1" data-type="select"> 
 
    <option value="">- Chọn TP -</option> 
 
    <option value="Hồ Chí Minh">Hồ Chí Minh</option> 
 
</select>

1

Вы можете определить объект как

var countries = { 
    "Nhật Bản" : [ 
     {display: "Tokyo", value: "Tokyo" }, 
     {display: "Osaka", value: "Osaka" } 
     ]; 
} 

Затем можно получить доступ к нему с помощью обозначений квадратных скобок

countries["Nhật Bản"] 
Смежные вопросы