【问题标题】:How do I redisplay the same dropdown list with the previous selection instead of the default selection?如何使用先前的选择而不是默认选择重新显示相同的下拉列表?
【发布时间】:2013-11-18 18:48:24
【问题描述】:

我有两个下拉列表。如果用户仅从一个选择框中选择某些内容,我想重新呈现具有相同下拉列表的页面,除了选择的页面显示上一个选择而不是默认选择。

html 看起来像

<div>
<select name = "menu" value = "{{menu}}">
    <option value = "selected">select something</option>
    <option value = "a">a</option>
    <option value = "b">b</option>
    <option value = "c">c</option>
</select>
</div>

<div>
<select name = "location" value = "{{location}}">
    <option value = "selected">select something</option>
    <option value = "d">d</option>
    <option value = "e">e</option>
    <option value = "f">f</option>
</select>
</div>

蟒蛇看起来像 menu = self.request.get('menu') location = self.request.get('location')

    if menu!="selected" and location!="selected":
        d = Delivery(parent = delivery_key(),
                 menu = menu, location = location)
        d.put()
        deliverystatus = "success"
        self.render('page.html',
                     deliverystatus = deliverystatus, menu = menu, location = location)
    else:
       error = "please select something from both lists"
       self.render("page.html",
                   menu = menu, location = location, error = error)

当出现错误并重新呈现页面时,我会在两个框中将“选择某些内容”作为默认值。我该如何更改?

【问题讨论】:

    标签: python html google-app-engine jinja2


    【解决方案1】:

    在 HTML 表单中,在选项中添加 if menu_value==this_option_value 打印 selected 的条件。所以是这样的:

    <select name = "menu" value = "{{menu}}">
        <option value = "selected">select something</option>
        <option value = "a" <% if menu == 'a': %>selected<% end> >a</option>
        <option value = "b" <% if menu == 'b': %>selected<% end> >b</option>
        <option value = "c" <% if menu == 'c': %>selected<% end> >c</option>
    </select>
    

    您应该检查语法,但这应该会让您知道如何做。

    【讨论】:

    • 有谁知道语法应该是什么?我在每个选项中添加了 python if/else 语句,指定选项值何时应该是默认的“选择”,但它仍然不起作用。
    • 变量menu是否仍然返回值selected
    • 是的,即使选择了“a”,下拉菜单仍会自动显示“选择某物”。我为每个选项添加了python,说如果菜单返回“a”,然后用选项替换“select something”的选项值=“selected”标签,并进行默认选择“a”。 (虽然这不起作用,更有效的解决方案是循环选择,如果菜单与选项值匹配,则将该选项重置为默认显示?)
    猜你喜欢
    • 1970-01-01
    • 2014-06-03
    • 2015-03-06
    • 1970-01-01
    • 2018-04-08
    • 2011-10-10
    • 1970-01-01
    • 1970-01-01
    • 2021-08-12
    相关资源
    最近更新 更多