I have this prototype code to detect a Enterclick in textarea.
document.observe('keydown', function(e, el) {
if ((e.keyCode == 13) && (el = e.findElement('.chattext'))) {
e.stop();
}
}
And html
<textarea id="chattext_17" class="chattext" cols="20" rows="3"></textarea>
But the problem is that this event is fired twice. I even tried to rewrite it in jQuery
$('.chattext').live('keydown', function(e) {
if (e.keyCode == 13) {
e.preventDefault();
}
});
But even then the event is called twice.
When I try to debug it using FireBug, it always jumps here after the event handler completes
function createWrapper(element, eventName, handler) {
var id = getEventID(element);
var c = getWrappersForEventName(id, eventName);
if (c.pluck("handler").include(handler)) return false;
var wrapper = function(event) {
if (!Event || !Event.extend ||
(event.eventName && event.eventName != eventName))
return false;
Event.extend(event);
handler.call(element, event);
};
wrapper.handler = handler;
c.push(wrapper);
return wrapper;
}
I'm not a prototype guru, so I don't know where the problem might be.
Why is the keydown event raised twice?
source
share