2012-06-28 69 views
1

爲什麼我的下拉菜單不下拉? 我不熟悉使用樣式表,不知道是否必須告訴它,因爲在沒有css的早期appengine工作中,菜單按預期下降。在下拉菜單中選擇不下降

Dropdowns that don't drop down.

可能的問題是該Jinja2的語法是源於此模板是基於Django的語法有什麼不同?我無法找到這種情況下的任何jinja2文檔。

#inputdata {margin:0 20%} 
#inputdata {background:#bfe2f9} 


<div id="inputdata"> 
    <label>Year:</label> 
     <select name="year"> 
     {% for year in years %} 
     <option 
    {% ifequal year yearset %} 
    selected="selected" 
    {% endifequal %} 
     value={{year}}>{{year}}</option> 
     {% endfor %} 
     </select> 
    <label>Month:</label> 
     <select name="month"> 
     {% for month in months %} 
     <option 
    {% ifequal month monthset %} 
    selected="selected" 
    {% endifequal %} 
     value={{month}}>{{month}}</option> 
     {% endfor %} 
     </select> 
    <label>Day:</label> 
     <select name="day"> 
     {% for day in days %} 
     <option 
    {% ifequal day dayset %} 
    selected="selected" 
    {% endifequal %} 
     value={{day}}>{{day}}</option> 
     {% endfor %} 
     </select> 
</div> 
+2

什麼是您的HTML標記是什麼樣子? –

+0

我們是否可以看到你的css請 – dibs

+0

@stevether像這樣:'' – 65Fbef05

回答

0

它看起來像你正在通過years,monthsdays作爲太深嵌套的列表。如果len(years) == 1那麼你要改變你逝去的是什麼,從這個到神社:

years = [[2012, 2013, 2014]] 

這樣:

years = [2012, 2013, 2014] 

(以及monthsdays這樣做)。

此外,Jinja2的不具有ifequals標籤 - 你可以只使用if塊:

{% for year in years %} 
<option {% if year == yearmark %}selected="selected"{% endif %} value="{{year}}"> 
{{ year }}</option> 
{% endfor %} 
+0

輝煌。你在我的代碼中修復了所有3個問題。 len(年)== 1,yearmark代替yearet,{%if if代替(%ifequal。非常感謝。 – zerowords

+0

等等......事實證明,jinja2似乎同時接受yearmark和yearet,並且{%ifequal和{%if。因此,唯一真正的問題是我的新代碼創建年份= [[2012,2013,2014]]而不是年份= [2012,2013,2014]。再次感謝。 – zerowords

1
<select><option value="All the years!">[2012,2013,2014]</option></select> 

也就是說<select>標籤並不怎麼工作的。你只有一個選項所以沒有什麼可以下降。

您需要打破你選擇的項目到自己的選項標籤:

<select> 
    <option>2012</option> 
    <option>2013</option> 
    <option>2014</option> 
</select> 
+0

哈,哈!我不知道OP的標記是什麼樣子,我只是在滔滔不絕。 – 65Fbef05

0

它看起來像你的語法是這樣的:

<select> 
    <option>[2012, 2013, 2014]</option> 
</select> 

當它應該看起來像:

<select> 
    <option value="2012">2012</option> 
    <option value="2013">2013</option> 
    <option value="2014">2014</option> 
</select> 
+0

是的,我也嘗試過這種語法,但也得到了相同的結果:value =「{{year}}」> {{year}} – zerowords