Neste artigo você aprenderá a como utilizar o hx-trigger em um evento de change, para mudanças dinâmicas com HTMX

hx-trigger em um evento de change capa

Fala programador(a), beleza? Bora aprender mais sobre HTMX!

Antes de seguir com o artigo, não deixe de conferir nosso curso completo de HTMX!

São mais de 6 horas de aula, do básico ao avançado e com dois projetos completos! Além disso, você tem acesso vitalício, equipe de suporte especializada para te ajudar e certificado de conclusão.

curso completo htmx

O Problema

Considere um formulário incorporado dentro de uma tabela, onde cada linha representa uma parte de um formulário que precisa ser enviado quando um campo específico dentro dessa linha é alterado.

Um exemplo comum poderia ser uma tabela de corrida de revezamento, onde cada etapa é editável diretamente na tabela.

O desafio é fazer com que HTMX detecte mudanças em um elemento <select> e envie os dados do formulário imediatamente após a mudança ser feita.

Estrutura do Formulário

O formulário é estruturado dentro de uma tabela HTML, onde cada linha contém dados de uma etapa da corrida e um campo dropdown para selecionar o corredor para essa etapa:

<table>
  <tr hx-post="/caminho/para/submissao" hx-swap="outerHTML" hx-trigger="change">
    <th>Inicio</th>
    <th>--></th>
    <th>Fim</th>
    <th>Distância</th>
    <th>Dificuldade</th>
    <td>
      <select name="corredor" id="corredor">
        <option value="">---------</option>
        <option value="1">Corredor 1</option>
        <option value="2">Corredor 2</option>
      </select>
    </td>
  </tr>
</table>

Solução Proposta

Configuração HTMX para Mudança em <select>

O atributo hx-trigger deve ser configurado para reagir ao evento de mudança (change).

Este evento é disparado quando o valor do campo <select> é alterado e o usuário então desfoca o campo:

<tr hx-post="//exemplo.com/submissao" hx-trigger="change">
  <td>
    <select name="corredor">
      <option value="a">Corredor A</option>
      <option value="b">Corredor B</option>
    </select>
  </td>
</tr>

Neste exemplo, sempre que uma seleção é feita, HTMX envia automaticamente o formulário associado à URL especificada em hx-post.

Adaptação para Outros Tipos de Campos

Para campos de entrada como <input type="text">, HTMX também pode ser configurado para reagir a mudanças, mas é importante notar que o evento change só é disparado quando o campo perde o foco.

Para uma resposta mais imediata, como por exemplo, reagir a cada tecla pressionada, pode-se usar o evento input:

<input type="text" hx-post="//exemplo.com/atualizacao" hx-trigger="input">

Este código configurará HTMX para enviar os dados cada vez que o usuário digitar ou alterar o texto no campo de entrada.

Conclusão

Chegamos ao fim do artigo sobre como utilizar o hx-trigger em um evento de change!

HTMX oferece uma abordagem simples e eficaz para automatizar a submissão de formulários em resposta a mudanças em elementos HTML.

Configurando corretamente o atributo hx-trigger, é possível adaptar facilmente o comportamento de submissão automática para diferentes tipos de campos de formulário, garantindo uma interface de usuário responsiva e interativa.

Esta solução melhora significativamente a usabilidade e a eficiência das aplicações web, permitindo que os desenvolvedores criem experiências de usuário mais dinâmicas e envolventes.

Subscribe
Notify of
guest

0 Comentários
Inline Feedbacks
View all comments