input-events-arrow-key-on-number-input-prevent-default.html (965B)
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <script src="/resources/testharness.js"></script> 5 <script src="/resources/testharnessreport.js"></script> 6 <script src="/resources/testdriver.js"></script> 7 <script src="/resources/testdriver-vendor.js"></script> 8 </head> 9 <body> 10 <input type="number" id="number_input"> 11 <script> 12 promise_test(async function() { 13 const inputElement = document.getElementById("number_input"); 14 let events = []; 15 inputElement.addEventListener("beforeinput", (e) => { 16 e.preventDefault(); 17 events.push("beforeinput"); 18 }); 19 inputElement.addEventListener("input", () => { 20 events.push("input"); 21 }); 22 inputElement.addEventListener("change", () => { 23 events.push("change"); 24 }); 25 26 inputElement.focus(); 27 28 await new test_driver.send_keys(inputElement, "\uE013"); 29 assert_array_equals(events, ['beforeinput']); 30 }, "Number input should not fire input and change event if the beforeinput event is default prevented"); 31 </script> 32 </body> 33 </html>