私のタイトルが適切であることを願っています:私はEntityTypeとしてフォームから来て、値はエンティティクラスからのものです。コード:Symfony:データベースエントリを持つドロップダウン選択に依存するフォーム要素を隠す/表示する
->add('type', EntityType::class, array(
'class' => 'DocumentBundle:DocumentType',
'label' => 'label.type',
'property' => 'translationKey',
'required' => true,
'multiple' => false,
'expanded' => false,
'empty_value' => 'label.select_type',
'choice_translation_domain' => 'Documents'
))
->add('vka_number', 'text', array(
'label' => 'label.vka_number',
'required' => false,
'translation_domain' => 'Documents'))
秒1は、そのドロップダウンリストから特定の値が私の小枝テンプレートで を選択したときに、私はのみ表示するテキストフィールド(vka_number)がある私は、要素のレンダリング:
<div class="row">
<div class="col-md-6" id="documentDropdown">
{{ form_row(form.type) }}
</div>
<div class="col-md-6" id="vka">
{{ form_row(form.vka_number) }}
</div>
</div>
私はそのようなJavaScript関数を考えていた:
<script>
$(document).ready(function(){
$('#documentDropdown').on('change', function(){
if (this.value == 'Contract')
{
$('#vka').show();
}
else {
$('#vka').hide();
}
});
});
</script>
が、それは働いていないと私はそれはトン以来のドロップダウンから値にアクセスすることはできませんので、これがあると思いますちょっとハードコードされていませんが、データベースエントリです。 'Contract'は、vka_numberテキストフィールドを表示させるエントリ(id = 1)です。
あなたは '#vka' idをいつ隠したいのですか?リスト内のContractアイテムは実際には 'value =" 1 "'ではなく、 'value =" Contract "ではないことがわかりました。私は 'value =" 1 "'だけで動作するようにjsfiddleを更新しました。言い換えれば、 'if(this.value == '1')' –
「契約」が選択されている場合を除いて、常に非表示にしたいと思っています。選択した値にアクセスするためのさまざまな可能性を試してみてください。 – sonja
私は自分の答えとjsfiddleを更新しました。 '1'の契約値で動作するはずです。それを試してみてください。 –