Closed
Bug 295246
Opened 20 years ago
Closed 20 years ago
Using addEventListener() keypress events are not working like expected
Categories
(Core :: DOM: Events, defect)
Tracking
()
RESOLVED
INVALID
People
(Reporter: alex, Unassigned)
Details
(Keywords: testcase)
Attachments
(1 file)
674 bytes,
text/html
|
Details |
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; es-AR; rv:1.7.8) Gecko/20050511 Firefox/1.0.4 Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; es-AR; rv:1.7.8) Gecko/20050511 Firefox/1.0.4 There is a diferent behavior when adding events throught addEventListener and setting directly using element.onkeypress Reproducible: Always Steps to Reproduce: Create a test page: [page] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>What's wrong?</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <body> <input type="text" id="foo" /> <input type="text" id="bar" /> <script type="text/javascript"> function addEvent(el, evname, func) { if (el.attachEvent) { // IE el.attachEvent("on" + evname, func); } else if (el.addEventListener) { // Gecko / W3C el.addEventListener(evname, func, false); } else { el["on" + evname] = func; } }; function kp_handler(){ return false; } addEvent(document.getElementById('foo'), 'keypress', kp_handler); [*a] document.getElementById('bar').onkeypress = kp_handler; [*b] </script> </body> </html> [/html] Actual Results: In both cases the event handler function (kp_handler) gets called: [*a] No action is taken, I can write anything in 'foo' [*b] I can't write in 'bar' // Right Expected Results: [*a] It shouldn't let write in 'foo' [*b] It's allright
Comment 1•20 years ago
|
||
I added an alert("keypress") to the keyhandler().
Comment 2•20 years ago
|
||
1st input: type ONE character, confirm alert, and see character in the input. 2nd input: type ONE character, confirm alert, and don´t see character. 1st input uses addeventListener() and that just adds an eventlistener. 2nd input replaces the native keyhandler with a new one. Is this function working differently in other browsers?
Keywords: testcase
Comment 3•20 years ago
|
||
You need to call event.preventDefault() to prevent the default action in an event listener. The returning false thing only does something for attribute handlers.
Reporter | ||
Comment 4•20 years ago
|
||
(In reply to comment #3) > You need to call event.preventDefault() to prevent the default action in an > event listener. The returning false thing only does something for attribute > handlers. > Thanks for the comment.
Comment 5•20 years ago
|
||
invalid then as far as i understand this, if you disagree, reopen.
Status: UNCONFIRMED → RESOLVED
Closed: 20 years ago
Resolution: --- → INVALID
You need to log in
before you can comment on or make changes to this bug.
Description
•