2012-10-19 30 views
0

我有一個實體,其中包含一個方法來確定是否需要禁用域。根據Symfony2中的布爾在視圖中禁用表單域

在我看來,我嘗試這樣做:

<div>{{ 
     form_widget(form.myValue, { 
      'attr': { 
       'disabled': form.get('value').isMyValueDisabled(), 
       '(...)': '(...)', {# several other attributes #} 
      } 
     }) 
    }}</div> 

可是,在一個HTML場disabled屬性禁用,即使它包含虛假我的領域。

這是一個共享表單,所以我無法在我的Type的->buildForm()方法中創建邏輯。

你有任何建議,禁用我的領域在樹枝視圖?

+0

你爲什麼不簡單地做一個如果你的方法,並顯示錶單? (%value)isMyValueDisabled()%} {{form_widget(form.myValue)}} {%else%} {{form_widget(form.myValue,{ ('value')。isMyValueDisabled(), } })}} {%endif%}' – Snroki

+0

因爲要設置幾個屬性,所以將它們全部複製/粘貼幾個次:-)我沒有複製所有的人,所以我理解你的問題。 –

回答

2

歐凱我找到了一個解決方案:

{% if form.get('value').isValueDisabled() %} 

<script type="text/javascript"> 
    $('#{{ form.value.vars.id }}').attr('disabled', 'disabled'); 
</script> 

{% endif %} 

如果你知道沒有JavaScript的方式,我很想學習吧!