Open marcoroth opened 10 months ago
In Safari, the event emitted is of type CustomEvent
, not KeyboardEvent
. And that's messing up the key filtering: https://github.com/hotwired/stimulus/blob/349dc165611238f8ba5b316d86ec6536c58b2a2c/src/core/binding.ts#L89-L91
I couldn't get Chrome to autocomplete emails so I couldn't test the type of Events it emits in this situation.
Hi, @marcoroth, I have submitted a pull request to fix the issue you raised in #713. I would be grateful if you could do a review if you could.
I can confirm this issue is happening also for other inputs when using Safari:
If you setup a
data-action
with akeydown.esc
event it will trigger the action whenever you autocomplete the<input>
with a selection from the browser popup:Here's a codepen to demonstrate the behaviour: https://codepen.io/marcoroth/pen/vYbPNeE?editors=1010
It looks like it's not only specific to the
esc
modifier, as it also happens for any other modifier or the plainkeydown
event as well. It seems like the autocomplete in browsers is being simulated by emitting a series ofkeydown
,keyup
andchange
events to mimic user input.Maybe we can detect if an event wasn't actual human input and then prevent the action from being run.
/cc @tylerklose