问题标签 [htmx]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
653 浏览

javascript - 使用 htmxjs 将数据加载到表单中

我正在使用HTMXJS一个 javascript 库,它允许您直接在 HTML 中访问 AJAX。

虽然我了解HTMX的基本逻辑,但也有一些方面我没有得到。

我设法制作了一个表格并将数据写入服务器:

HTMX 将读取所有name内容并将它们提交到write.php可以通过以下循环读取的位置$_POST

写.php:

我不明白如何用服务器返回的数据填充表单。例如,给定以下表单和以下输出,我想INPUT在按下按钮时填充单个字段:

HTML:

加载.php:

我知道文档说“当您使用 htmx 时,在服务器端您通常使用 HTML 而不是 JSON 响应”,但这是否意味着服务器输出应该是像这样再次呈现表单所需的整个 HTML 代码?

如果表单有几十个字段、长选择菜单和复杂的复选框组怎么办?会不会是从服务器传递到客户端的大量数据?

我很确定我错过了什么......

0 投票
1 回答
349 浏览

javascript - 禁用按钮并在行上显示沙漏(htmx)

我使用htmx通过html-over-the-wire更新我的页面片段

这工作正常:

.... 用户按下+-按钮后,相应的行将使用来自服务器的新版本进行更新。

我想给用户一些视觉反馈:

  • 在 ajax 调用期间应禁用按钮
  • 在更新的行上方应该有一个沙漏。
0 投票
2 回答
1310 浏览

htmx - htmx:hx-target:交换 html 与整页重新加载

我有一个包含多个表单的页面。

如果用户提交表单,那么只有当前表单应该被提交(而不是页面的其他表单)。

在服务器上,表单得到验证。

案例 1:如果验证失败,则服务器将 html 发送到客户端,并且应该交换特定的表单并将新表单添加到 DOM。这个新表单包含一条错误消息。用户现在可以修复他的错误并再次提交表单。

案例2:表单验证成功,数据被保存。现在我想在客户端触发整页重定向。

我阅读了 htmx hx-target的文档。我设法让 case-1 工作(我喜欢 htmx 的这个功能)。

但是服务器如何触发整页重定向呢?

0 投票
0 回答
170 浏览

django - DELETE 方法的基于 Django 类的视图无法重定向到 ListView

我正在使用 django 3.1 和基于类的视图。

当我使用 DELETE 并使用 POST 发送 METHOD_OVERRIDE 请求时,它会正确发送到我设置的删除视图。

但它会失败,因为在重定向到 /servers/ 时会出现 405 Method Not Allowed 错误。

该请求作为 X-HTTP-Method-Override 在 POST 请求中设置为 DELETE 发送到/servers/:id/.

删除成功,问题在于成功删除后的重定向。

它在控制台中的样子

什么是解决方法

但是,如果我发送一个常规的 POST 方法/servers/:id/delete并相应地设置 url,那么重定向就可以了。

所以基本上当我使用基于类的视图时我不能使用 DELETE 是吗?

更新

显然这是因为客户端为 302 重用了相同的 DELETE 方法。因此现在将 htmx 作为标签添加到问题中

0 投票
1 回答
299 浏览

htmx - 如何拥有嵌套的选择下拉菜单,为主列表和 htmx 的依赖列表获取不同的内容?

维护人员要求在此处重新发布

问题

https://htmx.org/examples/value-select/

我可以make说它直接在 html 中,当它发生变化时,会调用 hx-get 来获取新的模型列表。

如果我想让 themakemodelall 都依赖 ajax 怎么办?

想说的意思

我希望能够从/makes加载中获取获取选项列表

然后不知何故我也可以填充依赖模型。

我不介意将其作为两个请求进行。原因是在我的情况下makes也依赖于第 3 方 API

0 投票
1 回答
912 浏览

javascript - htmx:子元素中更改事件的 hx 触发器

我将htmx与 Django 表单库一起使用。

这是我的模板:

这是创建的html:

我希望它<tr>像一种形式。

我试图找到一种方法来告诉hx-trigger监听<select>.

如何告诉 htmx 在select更改后立即提交数据?

背景:这是一场接力赛,每条腿都是桌子上的一排。

0 投票
2 回答
459 浏览

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

这可以按我想要的方式工作:如果<select>更改,则触发htmx

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

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

0 投票
1 回答
351 浏览

post-redirect-get - 如果您提交 HTML 片段,则需要发布/重定向/获取?

过去我使用了Post/Redirect/Get模式:

  • html 是通过 POST 提交到服务器的
  • 服务器处理数据。
  • 如果一切正常,服务器以 http 302 响应(重定向
  • 客户端将页面重定向到新位置。

如果您通过htmx提交 html 片段,这是否仍然需要?

0 投票
1 回答
322 浏览

htmx - htmx:如何使每一行表现得像一个表格?

我想要一个这样的表,并让每一行的行为都像<form>.

如果用户点击“保存”,则只有当前行应该被提交给服务器。

桌子

我试过<tr hx-post="..."> ...了,但这会提交所有输入元素,而不仅仅是当前行。

我玩过hx-includehx-params,但到目前为止还没有找到解决方案。

0 投票
2 回答
1127 浏览

javascript - 如何从 JavaScript 手动触发元素的 hx-get 事件

我正在使用htmx向我的页面添加一些 AJAX 调用。我有一个cart-count元素被定义为在页面加载后 1s 检索购物车中的项目数:

我还有一个add-to-cart按钮,在它自己的东西之后(例如改变自己以remove from cart使用 htmx),发送一个额外的属性

到前端(有关文档,请参见此处)。

我有一个可以工作的事件监听器,

但是如何在 JS 中触发元素呢hx-get#cart-count

注意

如果购物车的东西在元素的父链中,那将起作用add-to-cart,但不幸的是,我的网页并非如此。

请注意,这里也提出了这个问题