2017-07-24 136 views
1

我有兩個下拉列表:第一個包含國家標誌,第二個包含語言..我使用jQuery + css + html5創建這兩個列表。在下拉列表中添加新選項,具體取決於其他下拉列表的選項

現在我想要做到這一點:我想這取決於哪個國家我選擇改變第二列表的選項(語言)..

例如,當我西班牙:西班牙國旗和西班牙國旗出現在語言列表

我試過使用javascript:

<script language="javascript" type="text/javascript"> 
    function checkValidOption() { 
     var field = document.getElementById('countries'); 
     var operator = document.getElementById('operator'); 

     field.onchange = function() { 
      fieldcheck(); 
     } 

     fieldcheck(); 

     function fieldcheck() { 
      if (field.value == 'br') { 
       var opt = document.createElement('option'); 
       opt.value = 'ad'; 
       opt.setAttribute('data-image', '{{ asset(' 
        bundles/stageadmin/img/blank.gif ') }}'); 
       opt.setAttribute('data-imagecss', 'flag ad'); 
       opt.setAttribute('data-title', 'Andorra'); 
       operator.options.add(opt); 

      } else if (field.value == 'au') { 
       .. 
       .. 
      } 
     } 
     .. 
     .. 
    } 
</script> 

國家名單:

<select name="countries" id="countries" style="width:300px;" onchange="checkValidOption();"> 
     <option value='br' data-image="{{ asset('bundles/stageadmin/img/blank.gif') }}" data-imagecss="flag br" data-title="Brazil"></option> 
     <option value='au' data-image="{{ asset('bundles/stageadmin/img/blank.gif') }}" data-imagecss="flag au" data-title="Australia"></option> 
    .. 
    .. 
    .. 
</select > 

這是語言列表:它僅包含在第一(美國出現的標誌)的英語語言

<select id="operator" name="operator" style="width:300px;"> 
    <option value='us' data-image="{{ asset('bundles/stageadmin/img/blank.gif') }}" data-imagecss="flag us" data-title="United States"></option>  
</select> 

(不去管那些「資產」這只是因爲我使用的框架symfony的)。

當我這樣做,通過選擇一個國家在語言列表中沒有任何變化... 我不知道什麼是問題..但是當我嘗試添加簡單的選項:我的意思是不使用國旗語言。 ..它的作品..但我希望它出現與標誌。

請幫我:)

感謝

+0

變化'operator.options.add(OPT);'到:'operator.appendChild(OPT);' –

+0

謝謝你,但它不工作: (jQuery代碼在這方面有什麼影響?所以它在這個驚呆了,不能改變任何東西 –

回答

0

你在你的代碼有錯誤。在此行上

opt.setAttribute('data-image', '{{ asset('bundles/stageadmin/img/blank.gif ') }}'); 

您必須轉義單引號或使用雙引號。

opt.setAttribute('data-image', "{{ asset('bundles/stageadmin/img/blank.gif ') }}") 

還利用operator.appendChild(opt)代替operator.options.add(opt)

相關問題