Well, my point was that in IE, the variable that is passed to the function does not exist, so you need to reference the global ‘event’ object.  Or does prototype handle that in the bindAsEventListener code already? 

 

What happens if you do this, instead of the inline handler?

$(‘id’).>

 

That should at least tell you if it’s something specific to using prototype or whether it just doesn’t work at all if you don’t use an inline handler.

 

Greg

 


From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Ryan Gahl
Sent: Friday, March 03, 2006 2:31 PM
To: rails-spinoffs@lists.rubyonrails.org
Subject: RE: [Rails-spinoffs] event.keyCode broken in prototype?

 

I’ve simplified my example. Changing “evt” to “event” makes no difference, you can name that parameter anything you want, it’s just a function argument variable (which is a reference to the actual event object).

 

I’m using IE6. I’m implementing a textbox input masking script in a proto OO behavior class (the script was originally non OO and required inline event handlers).

 

Anyway, you can replace my inline example below with

 

<input type=”text” />

 

function showKeyPressed ()

{

            alert(String.fromCharCode(event.keyCode));

}

 

..and get the same results.

 

I guess I’m at a loss. I can check to see if the shift key is down I guess (not sure if that also covers CAPSLOCK cases)… it’s very strange that it works fine if the event if hooked up inline, and not fine using the DOM2 methods… sucks.

 

 

 


From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] On Behalf Of Gregory Hill
Sent: Friday, March 03, 2006 3:23 PM
To: rails-spinoffs@lists.rubyonrails.org
Subject: RE: [Rails-spinoffs] event.keyCode broken in prototype?

 

Just a random thought, but what if you change ‘evt’ to ‘event’.  Does it work then?   What browser are you testing in, btw?  My thought is based on the fact that event is a global object in IE that gets the last event triggered.  I thought that you had to pass the object in as a parameter in other browsers, though, so I don’t know how your inline handler would work at all in non-IE browsers.  But, I’ve been wrong many times before.


Greg

 


From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] On Behalf Of Ryan Gahl
Sent: Friday, March 03, 2006 2:16 PM
To: rails-spinoffs@lists.rubyonrails.org
Subject: RE: [Rails-spinoffs] event.keyCode broken in prototype?

 

<input type=”text” />

 

The above returns “g” when “g” is pressed and “G” when “G” is pressed.

 

WHILE…

 

<input type=”text” id=”tb” />

 

someClass = Class.create();

someClass.prototype =

{

            initialize: function()

            {

                        Event.observe($(“tb”), “keypress”, this.showkeyPressed.bindAsEventListener(this) );

            },

 

            showKeyPressed: function(evt)

            {

                        alert(String.fromCharCode(evt.keyCode));

            }

};

 

…returns “G” all the time when the g key I pressed, no matter what. (Simplified example of course)

 

For some weird reason, the event object from proto’s bindAsEventListener method is always returning the capitalized keyCode of the key that was pressed.

 


From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] On Behalf Of Gregory Hill
Sent: Friday, March 03, 2006 3:07 PM
To: rails-spinoffs@lists.rubyonrails.org
Subject: RE: [Rails-spinoffs] event.keyCode broken in prototype?

 

Code?  Can’t help much without seeing what you’re doing.

 

 


From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] On Behalf Of Ryan Gahl
Sent: Friday, March 03, 2006 1:48 PM
To: rails-spinoffs@lists.rubyonrails.org
Subject: [Rails-spinoffs] event.keyCode broken in prototype?

 

I ran 2 tests. One using proto’s Event.observe, and another using an in-line handler of the “keydown” event in a textbox.

 

Using .bindAsEventListener, the event.keyCode is always returning a capital letter, no matter what. The in-line event handler returns lowercase vs. uppercase correctly… What’s going on?

 

I guess I find it hard to believe no one has tried capturing keyboard events before, so I’m hoping I’m just royally screwing something up. Can anyone help me on this?

The information transmitted in this electronic mail is intended only for the person or entity to which it is addressed and may contain confidential, proprietary, and/or privileged material.  Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from all computers.

_______________________________________________
Rails-spinoffs mailing list
Rails-spinoffs@lists.rubyonrails.org
http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs

Reply via email to