Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 安卓(phonegap)点击输入会随机触发不同的键盘_Java_Javascript_Android_Html_Cordova - Fatal编程技术网

Java 安卓(phonegap)点击输入会随机触发不同的键盘

Java 安卓(phonegap)点击输入会随机触发不同的键盘,java,javascript,android,html,cordova,Java,Javascript,Android,Html,Cordova,我正在为android开发一个phonegap应用程序 如果您不熟悉phonegap,只需知道它是一个包含webview的应用程序,其余部分由html/js组成 我有一个正常的输入,当我点击它时,我有一个正常的键盘被触发,在右下角有一个“Go”按钮 但有时,我的键盘在右下角只有一个“回车”键。这个键盘通常行为怪异,不想隐藏 我不明白为什么我的输入会触发不同的键盘。。我只想保留第一个 所以iScroll+Android+表单字段似乎不能很好地协同工作。我曾经遇到过一些棘手的问题,比如文本框消失,

我正在为android开发一个phonegap应用程序

如果您不熟悉phonegap,只需知道它是一个包含webview的应用程序,其余部分由html/js组成

我有一个正常的输入,当我点击它时,我有一个正常的键盘被触发,在右下角有一个“Go”按钮

但有时,我的键盘在右下角只有一个“回车”键。这个键盘通常行为怪异,不想隐藏

我不明白为什么我的输入会触发不同的键盘。。我只想保留第一个


所以iScroll+Android+表单字段似乎不能很好地协同工作。我曾经遇到过一些棘手的问题,比如文本框消失,工作不正常,键盘将整个页面向上移动。奇怪的东西

我们通过在每个文本框/选择项/表单字段上设置
touchstart
上的
stopPropagation
解决了这个问题,它解决了我们的问题

var selectField = document.getElementById('textbox');   
    selectField.addEventListener('touchstart', function(e) {
        e.stopPropagation();
        //updateScrollPosition(this, true);
    }, false);
编辑

我可以考虑的另一个解决方法是覆盖onBeforeScrollStart,以防止在选定元素中发生触摸时滚动(这里的问题是输入、选择和文本区域,但您可以针对任何内容):

编辑2

因此,上述两项都没有帮助。不久前我也遇到了同样的情况,所以我想出了一个(可怕的)黑客来解决这个问题。我无法共享这段代码(哦,许可证!),但我执行的步骤是:

  • 检查是否是android,版本是否低于3.0
  • 隐藏输入并替换为div
  • 单击div时,运行一个本机位层,触发对隐藏的EditText的单击
  • 添加一个textChangeListener并将所有内容复制到div和输入中
  • 真的很生气,这是你找到的最好的解决方案,并不断地把你的键盘敲在桌子上

可以发布两个键盘的屏幕截图吗?我不知道为什么会触发第二个键盘,似乎焦点放在了其他地方。您是否使用任何滚动库?出于某种原因,它们往往会导致输入出现问题。除此之外,你能分享html和任何与输入相关的javascript吗?@gameower是的,你说得很对。我用的是iScroll。我知道这是一个很大的麻烦,我很确定这是来自它。但是我真的找不到任何人有和我的问题相关的问题。。。如果您知道任何修复/好的建议,我很高兴听到:)尝试实现它,但现在我甚至不能点击输入。当我点击它时,什么都不会发生。你在哪里测试它?如果你在浏览器上运行它,它将不起作用,但在你的手机上应该可以正常工作!你在用哪个版本的安卓?我正在安卓手机上测试。我知道浏览器上不存在触摸事件;)我在android>=3上没有输入问题。我在2.3上遇到了问题,我在重写onBeforeScrollStart时也取得了很好的效果。也许值得一试!是的,我也在这样做(
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();
     }};

}