Bug 149398
Summary: | <input> of type=checkbox,radio,file doesn't fire `input` events | ||
---|---|---|---|
Product: | WebKit | Reporter: | Chris Rebert <webkit> |
Component: | HTML Editing | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED FIXED | ||
Severity: | Normal | CC: | ashvayka, d, jonlee, m.goleb+bugzilla, m.kurz+webkitbugs, rniwa, webkit-bug-importer, wenson_hsieh |
Priority: | P2 | Keywords: | HasReduction, InRadar |
Version: | WebKit Nightly Build | ||
Hardware: | Mac | ||
OS: | OS X 10.11 | ||
URL: | http://jsbin.com/jojoji/edit?html,output | ||
See Also: |
http://code.google.com/p/chromium/issues/detail?id=534245 https://bugzilla.mozilla.org/show_bug.cgi?id=1206616 |
Chris Rebert
Per the following portions of the HTML specification:
* https://html.spec.whatwg.org/multipage/forms.html#checkbox-state-(type=checkbox):event-input-input
* https://html.spec.whatwg.org/multipage/forms.html#radio-button-state-(type=radio):event-input-input
* https://html.spec.whatwg.org/multipage/forms.html#file-upload-state-(type=file):event-input-input
when the user changes the checkedness of an <input type="checkbox"> or <input type="radio">, or when a user changes the selected files of an <input type="file">, the browser is supposed to fire an `input` event (https://developer.mozilla.org/en-US/docs/Web/Events/input ) at that <input> element.
Safari/WebKit doesn't currently comply with this, and doesn't fire `input` events in these cases.
Steps to reproduce:
1. Open http://jsbin.com/jojoji/edit?html,output in Chrome.
2. Check the checkbox.
3. Click one of the two radio buttons.
4. Click "Choose File" and select a file.
Expected results:
After each of steps 2 thru 4, an alert box with the message "input!" should be displayed (because an `input` event should be fired at the respective <input> element).
Actual results:
No alert boxes are shown because no `input` events were fired.
Other info:
Equivalent Chrome bug: https://code.google.com/p/chromium/issues/detail?id=534245
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Chris Rebert
Erm, obviously I meant Safari rather than Chrome in the Steps to Reproduce.
Chris Rebert
HTML spec bug: https://github.com/whatwg/html/issues/601
Radar WebKit Bug Importer
<rdar://problem/25513372>
Chris Rebert
Firefox 49 now fires these events.
Domenic Denicola
Some tests added at http://w3c-test.org/html/semantics/forms/the-input-element/checkbox-click-events.html
m.kurz+webkitbugs
The Chrome team marked that bug as fixed as well with Chrome 66:
https://bugs.chromium.org/p/chromium/issues/detail?id=534245#c18
Lucas Forschler
Mass move bugs into the DOM component.
Alexey Shvayka
(In reply to Chris Rebert from comment #0)
> 1. Open http://jsbin.com/jojoji/edit?html,output in Chrome.
(In reply to Domenic Denicola from comment #5)
> Some tests added at
> http://w3c-test.org/html/semantics/forms/the-input-element/checkbox-click-
> events.html
As of Safari 13.1, jsbin.com example works as expected (for all <input> types) and web platform tests do pass.
m.kurz+webkitbugs
More specific details on the fixes:
Starting with Safari 12.1 the radio inputs and checkbox inputs fire “click”, “input”, and “change” events in order when clicked.
See
https://bugs.webkit.org/show_bug.cgi?id=190223
https://trac.webkit.org/changeset/236779/webkit
https://webkit.org/blog/8419/release-notes-for-safari-technology-preview-67/
-> "Fixed radio inputs and checkbox inputs to fire “click”, “input”, and “change” events in order when clicked"
Preview 67 was mentioned in the 12.1 blog post here (see bottom): https://webkit.org/blog/8718/new-webkit-features-in-safari-12-1/
Starting with Safari 13.1 finally the file input fires an input event before the change event:
https://bugs.webkit.org/show_bug.cgi?id=204292
https://trac.webkit.org/changeset/252768/webkit
https://webkit.org/blog/9672/release-notes-for-safari-technology-preview-97/
-> "Changed the file input to fire an input event before the change event"
Preview 97 was mentioned in the 13.1 blog post here (see bottom):
https://webkit.org/blog/10247/new-webkit-features-in-safari-13-1/