【问题标题】:How to change default background of checkbox using flask and wtforms?如何使用烧瓶和 wtforms 更改复选框的默认背景?
【发布时间】:2021-10-23 04:02:36
【问题描述】:

我不明白在哪里添加类名,所以我可以更改复选框的背景颜色。

form.py

DOMAINS = ['Bakeries', 'Bars and Pubs', 'Butcher Shops', 'Electronics', 'Fashion', 'Fish Shops',
       'Flowers', 'Furniture', 'Gelaterias and Sweets', 'Pets', 'Other', 'Restaurants and Cafés', 'Sport',
       'Supermarkets', 'Vegetables and Fruits']

class MultiCheckboxField(SelectMultipleField):
widget = widgets.ListWidget(prefix_label=False)
option_widget = widgets.CheckboxInput()

class BuyerForm(FlaskForm):
address = StringField(label='Address', validators=[InputRequired()])
domains_fields = [(x, x) for x in DOMAINS]
domains = MultiCheckboxField(label='Domains', choices=domains_fields)
radius = DecimalRangeField(label='Radius (KM)', default=5, validators=[InputRequired()])
submit = SubmitField(label='Search')

buyer_form.html

            <div class="form-group">
                {{ form.domains.label(class="form-control-label") }}
                {% if form.domains.errors %}
                    {{ form.domains(class="form-control form-control-lg is-invalid") }}
                    <div class="invalid-feedback">
                        {% for error in form.domains.errors %}
                            <span>{{ error }}</span>
                        {% endfor %}
                    </div>
                {% else %}
                    {{ form.domains(class="form-control form-control-lg") }}
                {% endif %}
            </div>

我正在寻找添加位置:

CSS 文件

.container input:checked ~ .checkmark {
  background-color: #e86875;
}

(我从w3school拿的)

【问题讨论】:

    标签: html css flask checkbox flask-wtforms


    【解决方案1】:

    首先,您从示例代码中提取的 CSS 部分不能单独工作。当您查看完整的示例时,它实际上删除了原始复选框并将它们替换为完全在 CSS 中完成的新复选框,因此它们可以以某种方式显示和运行。这意味着您需要包含整个 CSS 代码,以使复选框看起来像示例中的那样,并在选中时更改颜色。

    完成后,您可以将其放入您的buyer_form.html 代码中:

    <div class="form-group">
        {{ form.domains.label(class="form-control-label") }}
        {% if form.domains.errors %}
            {{ form.domains(class="form-control form-control-lg is-invalid") }}
            <div class="invalid-feedback">
                {% for error in form.domains.errors %}
                    <span>{{ error }}</span>
                {% endfor %}
            </div>
        {% else %}
            {% for domain in form.domains %}
                <label class="container">{{ domain.label() }}
                    {{ domain() }}
                    <span class="checkmark"></span>
                </label>
            {% endfor %}
        {% endif %}
    </div>
    

    【讨论】:

    • 给其他用户的提示:在上面的 CSS 和 HTML 中更改类(容器)的名称,因为您可能在其他地方使用过它(它可能会毁掉一切)。
    猜你喜欢
    • 2013-07-11
    • 1970-01-01
    • 1970-01-01
    • 2011-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    相关资源
    最近更新 更多