选择2块htmx hx-get

问题描述 投票:0回答:1

我在我的表单上使用 select2 选择 htmx 但由于某种原因,当表单字段有 select2 时 hx-get 不发送任何请求

我试图关闭 select2 并且一切正常,那么我该如何解决这个问题?

模板.html

<form method="get" class="mb-3">
    <div class="well">
        <div class="row">
            <div class="form-group col-sm-4 col-md-4 mb-3">

                <div class="custom-select">
                    {% render_field form.contractor_object|add_class:'form-select' hx-get="/customer/worklog/" hx-target='#id_test' hx-select="#id_test" %}
                </div>
            </div>
            <div class="form-group col-sm-4 col-md-4 mb-3">
                <div class="custom-select" id="id_test">
                    {% render_field form.contractor_section|add_class:'form-select' %}
                </div>
            </div>
        </div>
    </div>
    <div class="mt-4 custom-label">
        <div class="row">
            <div class="col">
                <button type="submit" class="btn btn-outline-primary">Поиск</button>
                <a class="btn btn-outline-primary" href="{% url 'customer_worklog' %}">Сброс</a></div>
        </div>
    </div>
</form>

<script>
    $(document).ready(function () {
        $("#id_contractor_object").select2();
    });
</script>

<script>
    $(document).ready(function () {
        $("#id_contractor_counter").select2();
    });
</script>

<script>
    $(document).ready(function () {
        $('#id_contractor_section').select2();
    });
</script>
django jquery-select2 htmx
1个回答
0
投票

Select2 插件会转换您最初在标记中定义的元素,这就是 htmx 停止处理该元素的原因。一个简单的解决方法是在 select 元素的父元素上设置 hx 属性,并使用

from
修饰符监听来自 select 元素的事件。在这种情况下,它可能看起来像:

<div class="custom-select" 
    hx-get="/customer/worklog/" 
    hx-target="#id_test"
    hx-trigger="change from:#id_contractor" //or whatever selector points to the selector field. 
    hx-select="#id_test">
    {% render_field form.contractor_object %}
</div>

即使实例化了 select2,这也应该可以工作。

© www.soinside.com 2019 - 2024. All rights reserved.