From 73cd2f48a9141397556af085df6f002bef640315 Mon Sep 17 00:00:00 2001 From: Adam England Date: Wed, 5 Feb 2014 08:56:32 -0600 Subject: [PATCH] Using Keydown instead of Keypress to provide safari support in polyfill --- time-polyfill.coffee | 2 +- time-polyfill.js | 2 +- time-polyfill.min.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/time-polyfill.coffee b/time-polyfill.coffee index 1b73f3a..f0edf71 100644 --- a/time-polyfill.coffee +++ b/time-polyfill.coffee @@ -207,7 +207,7 @@ HTML5 Time polyfill | Jonathan Stipe | https://github.com/jonstipe/time-polyfill decrement hiddenField, timeField event.preventDefault() null - keypress: (event) -> + keydown: (event) -> if event.keyCode == 38 # up arrow increment hiddenField, timeField else if event.keyCode == 40 # down arrow diff --git a/time-polyfill.js b/time-polyfill.js index 160b81a..8255fda 100644 --- a/time-polyfill.js +++ b/time-polyfill.js @@ -270,7 +270,7 @@ HTML5 Time polyfill | Jonathan Stipe | https://github.com/jonstipe/time-polyfill event.preventDefault(); return null; }, - keypress: function(event) { + keydown: function(event) { var _ref, _ref1; if (event.keyCode === 38) { increment(hiddenField, timeField); diff --git a/time-polyfill.min.js b/time-polyfill.min.js index 9539271..d852303 100644 --- a/time-polyfill.min.js +++ b/time-polyfill.min.js @@ -27,7 +27,7 @@ hiddenField=document.createElement('input');$hiddenField=$(hiddenField);$hiddenF if(style!=null){$timeField.attr('style',style);} $this.replaceWith(hiddenField);$timeField.insertAfter(hiddenField);halfHeight=($timeField.outerHeight()/2)+'px';upBtn=document.createElement('div');$(upBtn).addClass('time-spin-btn time-spin-btn-up').css('height',halfHeight);downBtn=document.createElement('div');$(downBtn).addClass('time-spin-btn time-spin-btn-down').css('height',halfHeight);btnContainer=document.createElement('div');btnContainer.appendChild(upBtn);btnContainer.appendChild(downBtn);$(btnContainer).addClass('time-spin-btn-container').insertAfter(timeField);$timeField.on({DOMMouseScroll:function(event){if(event.originalEvent.detail<0){increment(hiddenField,timeField);}else{decrement(hiddenField,timeField);} event.preventDefault();return null;},mousewheel:function(event){if(event.originalEvent.wheelDelta>0){increment(hiddenField,timeField);}else{decrement(hiddenField,timeField);} -event.preventDefault();return null;},keypress:function(event){var _ref,_ref1;if(event.keyCode===38){increment(hiddenField,timeField);}else if(event.keyCode===40){decrement(hiddenField,timeField);}else if(((_ref=event.keyCode)!==35&&_ref!==36&&_ref!==37&&_ref!==39&&_ref!==46)&&((_ref1=event.which)!==8&&_ref1!==9&&_ref1!==32&&_ref1!==45&&_ref1!==46&&_ref1!==47&&_ref1!==48&&_ref1!==49&&_ref1!==50&&_ref1!==51&&_ref1!==52&&_ref1!==53&&_ref1!==54&&_ref1!==55&&_ref1!==56&&_ref1!==57&&_ref1!==58&&_ref1!==65&&_ref1!==77&&_ref1!==80&&_ref1!==97&&_ref1!==109&&_ref1!==112)){event.preventDefault();} +event.preventDefault();return null;},keydown:function(event){var _ref,_ref1;if(event.keyCode===38){increment(hiddenField,timeField);}else if(event.keyCode===40){decrement(hiddenField,timeField);}else if(((_ref=event.keyCode)!==35&&_ref!==36&&_ref!==37&&_ref!==39&&_ref!==46)&&((_ref1=event.which)!==8&&_ref1!==9&&_ref1!==32&&_ref1!==45&&_ref1!==46&&_ref1!==47&&_ref1!==48&&_ref1!==49&&_ref1!==50&&_ref1!==51&&_ref1!==52&&_ref1!==53&&_ref1!==54&&_ref1!==55&&_ref1!==56&&_ref1!==57&&_ref1!==58&&_ref1!==65&&_ref1!==77&&_ref1!==80&&_ref1!==97&&_ref1!==109&&_ref1!==112)){event.preventDefault();} return null;},change:function(event){var ampm,hours,matchData,milliseconds,minutes,seconds,timeObj;$this=$(this);if(/^((?:1[0-2])|(?:0[1-9]))\:[0-5]\d(?:\:[0-5]\d(?:\.\d+)?)?\s[AaPp][Mm]$/.test($this.val())){matchData=/^(\d\d):(\d\d)(?:\:(\d\d)(?:\.(\d+))?)?\s([AaPp][Mm])$/.exec($this.val());hours=parseInt(matchData[1],10);minutes=parseInt(matchData[2],10);seconds=parseInt(matchData[3],10)||0;milliseconds=matchData[4];if(milliseconds==null){milliseconds=0;}else if(milliseconds.length>3){milliseconds=parseInt(milliseconds.substring(0,3),10);}else if(milliseconds.length<3){while(milliseconds.length<3){milliseconds+='0';} milliseconds=parseInt(milliseconds,10);}else{milliseconds=parseInt(milliseconds,10);} ampm=matchData[5].toUpperCase();timeObj=readTime($hiddenField.val());if(ampm==='AM'&&hours===12){hours=0;}else if(ampm==='PM'&&hours!==12){hours+=12;}