我正在为Android开发一个phonegap应用程序。
如果您不熟悉phonegap,只需知道它是一个包含webview的应用程序,其余部分由html / js组成。
我有一个正常的输入,当我点击它时,我有一个触发的普通键盘,右下角有一个“开始”按钮。
但有时,我得到的键盘右下角只有一个“Enter”键。这个键盘通常很奇怪,并且不想隐藏。
我无法理解为什么我的输入会触发不同的键盘。我只想保留第一个键盘。
答案 0 :(得分:0)
所以iScroll + Android + Form字段似乎并不能很好地协同工作。我遇到了一些令人讨厌的问题,文本框消失,工作不正常,键盘移动整个页面。奇怪的东西。
我们通过在每个文本框/选择/表单字段的stopPropagation
上设置touchstart
来解决它,它解决了我们的问题。
var selectField = document.getElementById('textbox');
selectField.addEventListener('touchstart', function(e) {
e.stopPropagation();
//updateScrollPosition(this, true);
}, false);
修改强>
我能想到的其他解决方法是覆盖onBeforeScrollStart以防止在所选元素中发生触摸时滚动(输入,选择和textAreas是问题,但你可以定位任何东西):
iScroll.options.onBeforeScrollStart = function(e) {
var target = e.target;
while (target.nodeType != 1) target = target.parentNode;
if (target.tagName != 'SELECT' && target.tagName != 'INPUT' && target.tagName != 'TEXTAREA'){
e.preventDefault();
}};
}
编辑2
所以上述两点都没有帮助。我曾经发生同样的事情,所以我想出了一个(可怕的)黑客来解决这个问题。我无法分享这段代码(哦许可证!)但我所做的步骤是: