首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTMX未触发对pickadate.js选择的正确查询

问HTMX未触发对pickadate.js选择的正确查询
EN

Stack Overflow用户
提问于 2022-11-01 17:24:29
回答 1查看 38关注 0票数 0

我使用django-forms-dynamic包和htmx在MultipleChoiceField上动态加载可用选项。这些选项是基于日期字段的,对此,我使用Am领事的pickadate.js。

初始查询从数据库中获得正确的选择。但是,如果日期被更改,则查询将落后一步。因此,让我们首先选择1.11.2022。如果更改为4.11.2022,则对1.11.2022进行查询。如果选择28.11.2022,则查询1.11.2022,等等。

reservation_form.html

代码语言:javascript
复制
<div class="col-lg-6">
  <div class="form-floating">
    {% render_field reservation_form.date class="datepicker form-control mb-3" 
           hx-get="/reservation/filter-seats" 
           hx-include="#id_dinner" 
           hx-trigger="click change" 
           hx-target="#id_seat_reservation" 
    %}
    <label for="id_date">Dinner Date</label>
  </div>


  <div class="form-floating">
    {% render_field reservation_form.amount_guests class+="form-control" placeholder="" %}
    <label for="id_amount_guests">Guests</label>
  </div>

  <div class="visually-hidden">
    {% render_field reservation_form.dinner %}
  </div>

  <div class="form-check">
    {% render_field reservation_form.seat_reservation class+="form-select" %}
    <label for="id_seat_reservation">Select Seats</label>
  </div>
</div>

泡菜脚本

代码语言:javascript
复制
<script>
    var $input = $('.datepicker').pickadate({
                        format: 'yyyy-mm-dd',
                        formatSubmit: 'yyyy-mm-dd',
                        min: 0,
                        max: 90,
                        disable: {{ blocked_dates }},
                        firstDay: 1,
                    })

    var picker = $input.pickadate('picker')
</script>

我遗漏了什么?

EN

回答 1

Stack Overflow用户

发布于 2022-11-02 00:12:35

您已经将触发器设置为hx-trigger="click change"。首先,这是不正确的,您必须用逗号分隔事件,现在HTMX试图将change计算为触发器修饰符,但没有成功。因此,只有click触发器事件,HTMX在单击输入元素时提交表单。同时,pickadate.js还侦听click事件并打开datepicker小部件。在选择日期之后,表单会分发change事件,但是您已经为HTMX禁用了该事件,因此它不会再次提交表单。下次单击输入元素时,HTMX将提交带有先前选定值的表单。

要解决这个问题,只需删除hx-trigger属性即可。因此,对于输入字段default trigger is already the change event,当pickadate.js向输入字段输入所选日期时,pickadate.js将提交表单。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74279618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档