m.buycarparts.co.uk - Unable to fill in the postcode correctly
Categories
(Web Compatibility :: Site Reports, defect, P1)
Tracking
(Webcompat Priority:P1, Webcompat Score:8)
People
(Reporter: railioaie, Unassigned)
References
()
Details
(Keywords: webcompat:site-report, webcompat:site-wait, Whiteboard: [webcompat-source:web-bugs])
User Story
platform:windows,mac,linux,android impact:workflow-broken configuration:general affects:all branch:release diagnosis-team:dom user-impact-score:800 outreach-assignee:hsinyi outreach-contact-date:2025-04-22
Attachments
(2 files)
Environment:
Operating system: Android 14
Firefox version: Firefox Mobile 127.0
Preconditions:
Clean profile
Steps to reproduce:
- Navigate to: https://m.buycarparts.co.uk/basket/address
- Complete the fields with the delivery address details
- Observe
Expected Behavior:
All the fields are filled correctly
Actual Behavior:
The postcode field is unable to be filled in correctly
Notes:
- Reproduces regardless of the status of ETP
- Reproduces in firefox-nightly, and firefox-release
- Does not reproduce in chrome
Created from https://github.com/webcompat/web-bugs/issues/148586
Updated•1 year ago
|
Comment 2•1 year ago
•
|
||
Comment 3•1 year ago
|
||
By comparing the execution between Firefox and Chrome, I see the following jQuery code executes differently.
while ((i = a[t++]) && !u.isPropagationStopped()) {
u.currentTarget = i.elem,
n = 0;
while ((o = i.handlers[n++]) && !u.isImmediatePropagationStopped())
u.rnamespace &&
!1 !== o.namespace &&
!u.rnamespace.test(o.namespace) ||
(
u.handleObj = o,
u.data = o.data,
void 0 !== (r = ((S.event.special[o.origType] || {}).handle || o.handler).apply(i.elem, s)) &&
!1 === (u.result = r) &&
(u.preventDefault(), u.stopPropagation())
)
}
i.handlers is the event handlers for keydown events for this <input> element, it was only one event handler in Chrome, but two event handlers in Firefox.
The attachment, extra event handler is the extra handler that gets to run in Firefox. Though I think this is still probably fine because it has this code:
return p.ignorable = d.ignorables.includes(k), f.keypressEvent.call(this, e, t, i, c, u)
ignorables contains KEY_229, which matches the keydown event that we dispatch. However the site doesn't seem to do the comparison correctly, so the "keydown" event isn't ignored.
Eventually, the site just renders whatever the "event.key" value is. I think this depends on IME, it could be "Process" which matches the screen recording in comment 1.
Overall, this looks like a site-bug.
Updated•1 year ago
|
Updated•1 year ago
|
Updated•10 months ago
|
Updated•9 months ago
|
Updated•5 months ago
|
Updated•4 months ago
|
Description
•