我正在为android开发一个phonegap应用程序。
如果你不熟悉phonegap,只知道它是一个包含webview的应用程序,其余的都是html/js。
我有一个普通的输入,当我点击它时,我有一个被触发的普通键盘,右下角有一个“开始”按钮。
但有时,我会得到一个在右下角只有一个“Enter”键的键盘。这个键盘通常行为怪异,不想隐藏。
我不明白为什么我的输入会触发不同的键盘。我只想保留第一个。
我正在为android开发一个phonegap应用程序。
如果你不熟悉phonegap,只知道它是一个包含webview的应用程序,其余的都是html/js。
我有一个普通的输入,当我点击它时,我有一个被触发的普通键盘,右下角有一个“开始”按钮。
但有时,我会得到一个在右下角只有一个“Enter”键的键盘。这个键盘通常行为怪异,不想隐藏。
我不明白为什么我的输入会触发不同的键盘。我只想保留第一个。
所以 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
所以以上都没有帮助。不久前我也遇到了同样的情况,所以我想出了一个(可怕的)黑客来解决这个问题。我不能分享这段代码(哦,许可证!)但我所做的步骤是: