Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

implicitInheritance also inherits hx-get, hx-post and hx-trigger, which htmx 2 never inherited

Abierto Apto para principiantes
#4,104 1 comentario 0 reacciones 1 asignado Ver en GitHub

Los mantenedores suelen responder en 4 días

@MichaelWest22 ya está trabajando en esto.

Desde el 15/10/2026.

  • #4109 de @00200200 — abierto

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
78/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
javascript
Área
frontend

Línea de trabajo

Comienza en src/htmx.js, en el selector de herencia alrededor de la línea 293; después, inspecciona la búsqueda de verbos alrededor de la línea 333 y la búsqueda de triggers alrededor de la línea 725. Traza cómo implicitInheritance selecciona los atributos y verifica que los verbos, hx-action, hx-method y hx-trigger queden excluidos, mientras que los atributos de htmx 2 indicados sigan heredándose. Se considera terminado cuando la reproducción realiza un GET al cargarse y envía el formulario mediante POST a /save sin entrar en un bucle de recarga.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

With htmx.config.implicitInheritance = true, htmx 4 inherits hx-get, hx-post and the other verb attributes, and hx-trigger. htmx 2 never inherited these, so the flag does not restore htmx 2 behaviour. htmx-2-compat only sets this flag, so it has the same problem.

Verbs and triggers resolve through __attributeValue, which applies implicit inheritance to every attribute:

Reproduction

A panel loads a form that has its own hx-post:

<meta name="htmx-config" content='{"implicitInheritance": true}'>
<div id="panel" hx-get="/panel" hx-trigger="load"></div>
<!-- /panel returns: -->
<form hx-post="/save" hx-target="#out"><button>save</button></form><div id="out"></div>
Version Page load Click "save"
2.0.10 one GET /panel POST /save
4.0.0 GET /panel in an endless loop no POST; the browser submits the form natively

The form inherits hx-get="/panel", which wins over its own hx-post because get is checked first. It also inherits hx-trigger="load", so every swap starts the next request.

Expected behaviour

Implicit inheritance applies only to the attributes htmx 2 inherited: hx-boost, hx-confirm, hx-disable (was hx-disabled-elt), hx-encoding, hx-headers, hx-include, hx-indicator, hx-push-url, hx-replace-url, hx-select, hx-select-oob, hx-swap, hx-sync, hx-target and hx-vals. Verbs, hx-action, hx-method and hx-trigger are never inherited.

Lenguaje dominante
JavaScript
Estrellas
49.6k
Forks
1.7k
Merge medio
9 d 3 h
PR fusionados (30 d)
10

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de bigskysoftware/htmx

Todos los issues de bigskysoftware/htmx

Issues similares

Más issues de JavaScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.