chris feldmann wrote:
> Hi mochinauts.
> I am trying to disable form submission on enter keydown. This snippet
> works on every platform except safai, which even does the visual
> "submit press" animation cue and then submits. Is there some secret
> sauce for safari's enter key?
>
> connect( window, "onload", function(){
> connect( document, "onkeydown", function( e ){
> e.stop();
> var key = e.key();
> for( p in key ){
> logDebug( p + " : " + key[p] );
> }
> if( key.code == 13 || key.code == 3 ){
>
> return false;
>
> }
> } );
I have an application that makes use of the return key and works fine
in Safari and Firefox. I use the following:
var sendkeyspecial = 0;
var initpage = function () {
MochiKit.Signal.connect(document, "onkeypress", this, "keypress");
MochiKit.Signal.connect(document, "onkeydown", this, "keydown");
MochiKit.Signal.connect(document, "onkeyup", this, "keyup");
};
var isspecialkey = function(e) {
if(e == 13 || e == 8)
return 1;
}
this.keypress = function(e) {
if(e.modifier()['meta'])
return;
var code = e.key().code;
if(code == 0)
code = sendkeyspecial;
if(isspecialkey(code) == 1) {
if(code == 13) { //return
e.stop();
return;
}
if(code == 8) { //backspace
e.stop();
return;
}
}
e.stop();
}
this.keydown = function(e) {
sendkeyspecial = e.key().code;
}
this.keyup = function(e) {
sendkeyspecial = 0;
}
MochiKit.DOM.addLoadEvent(initpage);
This catches all keypresses that don't involve the meta(command) key. I
would probably add special handling for the control key if I was doing
serious development, but this is more of a toy script on my Mac for
now. The sendkeyspecial thing is used to get key repeating to work
properly for special keys in some browsers.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"MochiKit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/mochikit
-~----------~----~----~----~------~----~------~--~---