2012-06-28 4 views
1

Почему мои выпадающие меню не отображаются? Я незнаком с использованием таблиц стилей и удивляюсь, если мне нужно что-то сказать, потому что в более ранней работе appengine без css меню опущено, как ожидалось.выберите в выпадающем меню, не отбрасывая

Dropdowns that don't drop down.

Может быть проблема, что синтаксис jinja2 отличается от синтаксиса Джанго, на котором основан этот шаблон? Я не могу найти ни одного jinja2 docs для этой ситуации.

#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, months и days как слишком глубоко вложенные списки. Если len(years) == 1 то вы хотите, чтобы изменить то, что вы передаете в Джиндже от этого:

years = [[2012, 2013, 2014]] 

к этому:

years = [2012, 2013, 2014] 

(И делать то же самое для months и days).

Кроме того, Jinja2 не имеет ifequals тега - вы можете просто использовать if блок:

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

Brilliant. Вы исправили все 3 проблемы в моем коде. len (years) == 1, yearmark вместо yearset, и {% if вместо (% ifequal. Большое спасибо. – zerowords

+0

Подождите ... выясняется, что jinja2, похоже, принимает как летнюю, так и летнюю дату и оба {% 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

Смежные вопросы