2017-09-04 66 views
0

我symfony框架工作,我有两个选择类型:显示隐藏的选择类型使用javascript

第二选择最初是隐藏的,并相对于第一价值选择第二个选择将显示:对于我试图做到这$:

脚本

<script type="text/javascript"> 
$(document).ready(function() { 
    $('.type-produit ').change(function() { 
    if ($('select[id$="_type"]>option:selected').text() == "Unité") 
    { $('.hidden ').show(); } 
    }); 
}); 
</script> 

FormType

$formMapper 
->add('type','choice', array(
    'choices' => array('Kg' => 'Kg', 'Unité' => 'Unité'), 
    'label' => 'Type de vente', 
    'attr' =>array('class'=>'type-produit') 
)) 

->add('soustype',HiddenType::class, array(
    'data' => ['Liquide'=>'Liquide','Autres'=>'Autres'], 
    'label' => 'Sous types', 
    'attr'=>array('class'=>'hidden') 
)) 

但第二选择仍然没有显示,有人可以帮助我吗?感谢所有

+0

你能分享你的HTML输出? – SCC

+1

默认情况下,HiddenType通常不可见。将第二个选项设置为TextType。 –

回答

1

更改soustypechoice类型(HiddenType场呈现为<input type="hidden">),那么你就可以隐藏或显示在脚本领域。

FormType

... 
->add('soustype', 'choice', array(
     'choices' => ['Liquide'=>'Liquide','Autres'=>'Autres'], 
     'label' => 'Sous types', 
     'attr' => array('class'=>'soustype') 
)) 

脚本

$(document).ready(function() { 
    $('.soustype').hide(); 

    $('.type-produit ').change(function() { 
     if ($('select[id$="_type"]>option:selected').text() == "Unité") { 
      $('.soustype ').show(); 
     } 
    }); 
}); 
+0

whene我试过你的解决方案第二选择仍然显示初始状态,如果我从第一选择中选择“Unité”,则会添加其他选择字段 –

+0

显示表单类型定义。 – miikes

+0

感谢@miikes它的工作,juste我有错误,我在同一页中的其他脚本中修复它 –