Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

221
Visualizações
¿Cómo hacemos que una respuesta htmx active un restablecimiento de formulario?

Estoy creando una aplicación de mensajería Django muy básica y me gustaría usar htmx para enviar y procesar mensajes. Puedo publicar, guardar el mensaje y mostrar el mensaje parcial sin problemas. Sin embargo, me encuentro con un problema extraño en el que no se reinicia el área de texto de mi formulario. Entonces, enviaría un mensaje, y después de insertar el intercambio, mi mensaje anterior aún estaría en el área de texto. ¡Esto no es muy ideal!

Traté de borrar manualmente el área de texto agregando un evento onclick así:

html

 <div id="new-message-div"></div> <form id="message-form" class="chat-form rounded-pill bg-dark" data-emoji-form="" hx-post="{% url "chat:create-message" object.pk %}" hx-target="#new-message-div"> ... {{ message_form }} ... <button class="btn btn-icon btn-primary rounded-circle ms-5" type="submit" onclick="submitForm()"> </button> </form>

Guión ( https://stackoverflow.com/a/14589251/12758446 )

 <script> function submitForm() { var message_form = document.getElementById('message-form'); message_form.submit(); // Submit the form message_form.reset(); // Reset all form data return false; // Prevent page refresh } </script>

A pesar de tener message_form.submit() en submitForm(), mi formulario no se envía, pero el área de texto se restablece.

Pregunta:

¿Cómo haría para restablecer mi área de texto después de enviar y entregar un mensaje con éxito?

Vista de Django, basada en https://github.com/legionscript/socialnetwork/blob/84375841429887e394a2a31e1b67919f81a3cb06/social/views.py#L428

 def create_message(request, pk): message = None if request.htmx: thread = get_object_or_404(ThreadMessageModel, pk=pk) form = MessageModelForm(request.POST) if thread.receiver == request.user: receiver = thread.user else: receiver = thread.receiver if form.is_valid(): message = form.save(commit=False) message.thread = thread message.sender_user = request.user message.receiver_user = receiver message.save() form = MessageModelForm() return render(request, 'chat/subtemplate/render_message.html', {'message': message})
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Para soluciones del lado del servidor, podría:

  1. Aumente el objetivo en hx-target para incluir tanto el nuevo mensaje como el formulario para que ambos se reemplacen al enviar. Por supuesto, la respuesta parcial en este caso tendría que ser ajustada.

  2. Mantenga las cosas como están ahora, pero incluya el formulario en su respuesta para un intercambio oob (fuera de banda) https://htmx.org/attributes/hx-swap-oob/ . Para el intercambio de oob, agregue el marcado del formulario a su nueva respuesta de mensaje con el atributo hx-swap-oob="true" .

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda