0
鑑於金屬宏,看起來像這樣:它使用類似這樣的宏觀PHPTAL條件屬性
<tal:block metal:define-macro="foo">
<option value="1">Foo</option>
<option value="2">Bar</option>
<option value="3">Baz</option>
</tal:block>
和模板:
<select>
<tal:block tal:define="selectedValue 2" metal:use-macro="foo" />
</select>
什麼,我需要添加到宏,使得生成的HTML看起來像這樣:
<select>
<option value="1">Foo</option>
<option value="2" selected="selected">Bar</option>
<option value="3">Baz</option>
</select>
我試過v使用php:
表達式的各種不同的方法,甚至定義了我自己的TALES函數,但似乎沒有給我所尋找的東西。
瀏覽器對待任何選項,其中selected
屬性顯示爲實際選定的。這意味着selected
,selected=""
,selected="foo"
等都將使選項被選中。 PHPTAL有一個內置的attribute value | nothing
語法來解決這個問題,但是在value
爲空的情況下,這隻能回落到nothing
,這對我沒有幫助,因爲我需要將它與一個值進行比較。像這樣的事情(不工作):
<option value="2" tal:attributes="selected (selectedValue == 2 ? 'selected' : NULL) | nothing">Bar</option>
謝謝,這個作品很棒。 – FtDRbwLXw6 2011-12-30 18:35:44
如果我必須將循環中的「selectedValue」與repeat/item/key進行比較(例如,選擇標籤中的選項),該怎麼辦? – Meglio 2012-11-30 21:49:40
@Meglio在'php中使用'repeat.item.key':' – Kornel 2012-12-10 11:39:28