Select2“更改”事件不会触发htmx

问题描述

这是我想要的方式:如果 <select> 被改变,那么 htmx 被触发。

<script src="https://unpkg.com/htmx.org@1.1.0"></script>

<table>
 <tr hx-post="//example.com" hx-trigger="change">
  <td>
    <select name="runner">
     <option value="a">a</option>
     <option value="b">b</option>
    </select>
  </td>
 </tr>
</table>

如果我使用 django-autocomplete-light 小部件,则它不起作用。

我使用这个版本:django-autocomplete-light==3.8.1

解决方法

如果我添加这个 JS,那么它就可以工作了。欢迎提供更好的解决方案。

<script>
 window.addEventListener("DOMContentLoaded",(e) => {
  $('select').on('select2:select',function (e) {
   $(this).closest('tr').get(0).dispatchEvent(new Event('change'));
});
 })
</script>
,

刚刚遇到了同样的问题,并使用以下 guettli 答案的修改版本进行了修复。

window.addEventListener("DOMContentLoaded",(e) => {
    $('select').on('select2:select',function (e) {
        $(this).closest('select').get(0).dispatchEvent(new Event('change'));
    });
});