Coder Social home page Coder Social logo

Be able to swap content on errors about htmx HOT 6 CLOSED

agraddy avatar agraddy commented on May 23, 2024 1
Be able to swap content on errors

from htmx.

Comments (6)

1cg avatar 1cg commented on May 23, 2024 4

Hi Anthony,

I am working on an approach for exactly this. It is going to take me a bit to get it right, but I think you will be happy with the results. I will keep this issue open until I'm ready to discuss it.

from htmx.

1cg avatar 1cg commented on May 23, 2024 1

@agraddy totally understand.

Your other options are a simple extension that handles the error.htmx error, or simply a javascript event handler on the body for the same event.

I'm trying to keep htmx as simple as possible and make it open and extensible for all the rest.

Should also mention that you can call out to javascript from a hyperscript handler:

<form hx-post="/ajax/contact" _="on error.htmx(errorInfo) call myJavascriptMethod(errorInfo)">

and just use hyperscript as the glue between the events and the javascript logic.

from htmx.

1cg avatar 1cg commented on May 23, 2024

@agraddy here is a preview of what's coming in 0.1:

https://dev.htmx.org/docs/#hyperscript

from htmx.

agraddy avatar agraddy commented on May 23, 2024

Thanks for following up. That does appear to solve the issue. Having a new language isn't really appealing to me personally; I'd rather just write javascript. One of the initial draws of HTMX for me was its simplicity and that it wasn't trying to fully recreate javascript functionality in HTML. It handled the most important use case very efficiently and if needed, you could write your own extension.

I could see how a lot of people would find hyperscript appealing but it's just not for me. That being said, it does appear to solve the issue that I brought up so I believe this can be marked as solved (I'm not sure what your protocol is for closing issues - I don't want to prematurely close the issue since you had said you were keeping it open - I'll leave the status of the issue up to you).

Thanks!

from htmx.

agraddy avatar agraddy commented on May 23, 2024

Just for future reference for anybody finding this when searching for how to handle errors. I'm assuming the proposed solution for the scenario I originally gave is that you would write code like this (I'm not sure if this works but I believe this is the goal):

<form hx-post="/ajax/contact" _="on error.htmx(errorInfo) add errorInfo to .messages">
    <div class="messages"></div>
    <div>
        <label>Name</label>
        <input type="text" name="name" value="" />
    </div>
    <div>
        <label>Email</label>
        <input type="text" name="email" value="" />
    </div>
    <div>
        <label>Message</label>
        <textarea name="message"></textarea>
    </div>
    <div>
        <input type="submit" value="Send" />
        <span class="loading"></span>
    </div>
</form>

from htmx.

bencroker avatar bencroker commented on May 23, 2024

One more comment before closing this issue is that you can simply have your server respond with a 200 status:

STATUS: 200
<p class="error">All fields are required.</p>

from htmx.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.