fix(keyboard):don't setKeyboardShow on date/time inputs

Closes #1638.
This commit is contained in:
Tim Lancina
2014-06-18 14:31:28 -05:00
parent 9ff1b965bf
commit ad08b341ce
3 changed files with 38 additions and 1 deletions

View File

@@ -104,7 +104,7 @@ function keyboardNativeShow(e) {
}
function keyboardBrowserFocusIn(e) {
if( !e.target || !ionic.tap.isTextInput(e.target) || !keyboardIsWithinScroll(e.target) ) return;
if( !e.target || !ionic.tap.isTextInput(e.target) || ionic.tap.isDateInput(e.target) || !keyboardIsWithinScroll(e.target) ) return;
document.addEventListener('keydown', keyboardOnKeyDown, false);

View File

@@ -166,6 +166,11 @@ ionic.tap = {
(ele.tagName == 'INPUT' && !(/^(radio|checkbox|range|file|submit|reset)$/i).test(ele.type)) );
},
isDateInput: function(ele) {
return !!ele &&
(ele.tagName == 'INPUT' && (/^(date|time|datetime-local|month|week)$/i).test(ele.type));
},
isLabelWithTextInput: function(ele) {
var container = tapContainingElement(ele, false);

View File

@@ -1162,6 +1162,38 @@ describe('Ionic Tap', function() {
expect( ionic.tap.isTextInput(ele) ).toEqual(false);
});
it('Should isDateInput', function() {
expect( ionic.tap.isDateInput(null) ).toEqual(false);
ele = document.createElement('input');
ele.type = 'date';
expect( ionic.tap.isDateInput(ele) ).toEqual(true);
ele.type = 'datetime-local';
expect( ionic.tap.isDateInput(ele) ).toEqual(true);
ele.type = 'month';
expect( ionic.tap.isDateInput(ele) ).toEqual(true);
ele.type = 'week';
expect( ionic.tap.isDateInput(ele) ).toEqual(true);
ele.type = 'time';
expect( ionic.tap.isDateInput(ele) ).toEqual(true);
ele.type = 'checkbox';
expect( ionic.tap.isDateInput(ele) ).toEqual(false);
ele.type = '';
expect( ionic.tap.isDateInput(ele) ).toEqual(false);
ele.type = 'text';
expect( ionic.tap.isDateInput(ele) ).toEqual(false);
});
it('Should isLabelWithTextInput', function() {
var label = document.createElement('label');
expect( ionic.tap.isLabelWithTextInput(label) ).toEqual(false);