Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save saimonmoore/14350 to your computer and use it in GitHub Desktop.
Save saimonmoore/14350 to your computer and use it in GitHub Desktop.
FormBubbler = {
submittableInput: function(element) {
var element = $(element);
return ( element.match('input[type=text]') || element.match('input[type=password]') );
},
submitButton: function(element) {
var element = $(element);
return ( element.match('input[type=submit]') || element.match('input[type=image]') );
},
EventHandlers: {
keypress: function(event) {
var returnValue = true;
if ( event.key == 'enter' ) {
var element = event.target || event.relatedTarget;
if ( FormBubbler.submittableInput(element) ){
var form = element.getParent('form');
if (form) {
document.fireEvent('submitted', [event, form]);
}
}
}
return returnValue;
},
click: function(event) {
var element = event.target || event.relatedTarget;
var returnValue = true;
if ( FormBubbler.submitButton(element) ) {
var form = element.getParent('form');
if (form) {
document.fireEvent('submitted', [event, form]);
}
}
return returnValue;
}
}
};
handleKeyPressEvent = function(event){
var returnValue = FormBubbler.EventHandlers.keypress(event);
};
handleClickEvent = function(event){
var returnValue = FormBubbler.EventHandlers.click(event);
};
document.addEvent('click', handleClickEvent);
document.addEvent('keypress', handleKeyPressEvent);
document.addEvent('submitted', function(event, form) {
// do something here...
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment