Comments (5)
I decided to revert the default event to always be change
.
Mobile date pickers don't have the original issue (#336) of emitting too many change
events, so defaulting to blur
is not a universally good default even if we discounted custom date picker libraries.
from unpoly.
Case 1: flatpicker is faster then unpoly
Case 2: unpoly is faster then flatpicker (usual case)
What causes the initialization order to not be deterministic?
Consider using a compiler to initialize flatpicker instead of MutationObserver
. This way [up-validate]
should always run before your flat picker initialization. The order can be changed with a { priority }
option.
Flatpicker itself changes the input type from date to text to disable the browsers native date picker.
It seems the issue is the input element changing its type after initialization, which Unpoly cannot support.
I'm closing this issue as there are numerous workarounds:
- Using text inputs instead of date inputs (if they're going through flatpicker anyway)
- Adding
[up-watch-event=change]
to date inputs, manually or with a macro - Initializing flatpicker before
[up-validate]
- Configuring
up.form.config.watchChangeEvents
to not watchblur
events for date inputs.
from unpoly.
Hi @triskweline,
Consider using a compiler to initialize flatpicker instead of MutationObserver. This way [up-validate] should always run before your flat picker initialization. The order can be changed with a { priority } option.
This was only for the minimal example - In real the flatpicker is behind a stimulus controller.
I'm closing this issue as there are numerous workarounds:
- Using text inputs instead of date inputs (if they're going through flatpicker anyway)
Trying to avoid this as the custom date picker needs javascript and the field should work fine without
- Adding [up-watch-event=change] to date inputs, manually or with a macro
- Configuring up.form.config.watchChangeEvents to not watch blur events for date inputs.
OK this works - wasn't aware of such configuration yet.
Still wondering why there is a default "hack" in place making date input behave differently than all other inputs. If it's as simple to configure it to solve the issue in #336.
Especially as that's how all custom date pickers are working to disable browsers default behavior and as they are only needs sometimes they will be lazy loaded.
Anyway thanks for your help
from unpoly.
We can either provide a good default experience for people who use native date picker, or for people who use a custom date picker with the particular behavior of flatpickr.
I will think about changing the default to just change
, but it looks like some group will always be surprised by the default.
from unpoly.
I totally agree and it's not my decision.
I just would feel it consistent to say by default unpoly listens on the change event, which can be customized and probably with an example of date input instead of by default unpoly listens on change event except it's a date input which then defaults to blur.
from unpoly.
Related Issues (20)
- nested up-hungry removes inner hungry elements HOT 1
- per page css
- Hide focus ring when following an [up-instant] link HOT 1
- Please support `up.reload(":none")` HOT 3
- Respect unpoly attributes on form submitters HOT 2
- snipcart with unpoly HOT 2
- Incorrect docs: Event target for 'up:form:submit' is not always the form HOT 5
- Is up-disable broken? HOT 2
- JS error when using up-submit: Uncaught up.Error: up.on(): The "up:click" callback function executeEmitAttr; EDIT: Putting the script in the end of body breaks the js HOT 2
- `up.animate` does not respect `duration: 0`
- Question: Async code in 'up:form:submit' possible race condition? HOT 2
- no transition with tailwindcss
- Web Component form field dropped by up-submit HOT 2
- Can unpoly exchange HTML fragments through WebSockets?
- Look at explicit port for cross-origin detection HOT 1
- Successfully submitting a form within a layer with the param up-layer='root' closes the layer with up:layer:dismiss and not up:layer:accept event HOT 1
- Watching fields requires multiple-values checkboxes to have a `[]` name suffix HOT 6
- Handle links with anchors that start with a number HOT 1
- Handle links with anchors that start with a number HOT 1
- Browser does not loose it's zoom state between page navigations on smartphones HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from unpoly.