2017-07-24 83 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)

相关问题