2014-09-28 84 views
23

當使用像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

回答

1

我發現使用的setInterval和解決方案的回答方法從這裏Trigger Google Places Autocomplete

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

這項工作?

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

4

您只需手動觸發按鍵事件。

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

這絕對是一個混亂的解決方案,但它應該得到自動完成工作,以及其他等待按鍵的處理程序。