Warning: file_put_contents(/datas/wwwroot/jiajiahui/core/caches/caches_template/2/default/show.php): failed to open stream: Permission denied in /datas/wwwroot/jiajiahui/core/libraries/classes/template_cache.class.php on line 55

Warning: chmod(): Operation not permitted in /datas/wwwroot/jiajiahui/core/libraries/classes/template_cache.class.php on line 56
iOS 8第三方键盘不会注册javascript/jQuery keyup,keypress,keydown等 - 源码之家

iOS 8第三方键盘不会注册javascript/jQuery keyup,keypress,keydown等

问题描述:

当使用像Swiftkey这样的第三方键盘按键时,不需要注册。例如谷歌地图自动完成将不起作用https://developers.google.com/maps/documentation/javascript/examples/places-autocompleteiOS 8第三方键盘不会注册javascript/jQuery keyup,keypress,keydown等

似乎像一个iOS错误,但有关如何解决这个问题的任何想法?

+0

我有同样的问题。我开发自己的一个小键盘只是为了检查,仍然存在相同的问题。我认为这是因为ios8很年轻。 – ababab5 2014-09-28 00:16:28

+1

我在使用swype开发科尔多瓦混合应用的android上有这个相同的问题。 – njtman 2014-10-07 15:32:15

+0

您是否尝试设置另一个'type'或'pattern'属性?这可能会强制浏览器使用本机键盘。 – lloiser 2014-11-19 17:40:36

我发现使用的setInterval和解决方案的回答方法从这里Trigger Google Places Autocomplete

setInterval(function() { 
if ($('input#mapSearch').is(':focus')) { 
google.maps.event.trigger(document.getElementById('mapSearch'), 'focus', {}); 
} 
}, 500); 

这项工作?

jQuery('#text_box').on('input propertychange paste', function() { 
    // text has changed... 
}); 

JSFIDDLE

+0

不幸的是... – kylex 2014-10-08 06:09:03

+1

@kylex感谢您的描述性评论。 – 2014-10-08 14:40:50

+0

对不起,它不适用于第三方键盘。使用swype输入时(例如),操作从不触发。直到我们将注意力集中在我们更改注册的框上。 – kylex 2014-10-08 17:07:59

您只需手动触发按键事件。

$textBox = $('#text_box') // We don't want to search the dom more than we have to. 
setInterval(function(){ 
    $textBox.trigger('keypress') 
}, 500) 

这绝对是一个混乱的解决方案,但它应该得到自动完成工作,以及其他等待按键的处理程序。