【问题标题】:html phonegap android : numeric soft keyboard has next instead of go buttonhtml phonegap android:数字软键盘有下一个而不是去按钮
【发布时间】:2012-03-03 06:08:41
【问题描述】:

这让我发疯,我无法在任何地方找到答案。

我的 phonegap 应用中有表格。如果输入type="text",则弹出文本键盘,角落显示“go”。当您单击 go 时,它会提交表单。这一切都如我所料。但是如果我使用 input type="number",数字键盘会弹出,并且“next”会显示在角落里。单击下一步时,如果按钮标记之前有另一个输入框,则转到该输入。没关系。 . .不理想,但有道理。但如果它是页面上的最后一个输入字段,单击“下一步”不会执行任何操作。它不会将焦点放在按钮上(即使使用 tabindex),也不会提交表单(理想)。

如果有帮助的话,我正在使用 phonegap 1.3.0 和 jquery 1.7。

【问题讨论】:

  • 对此+1,我正在尝试一切。与此同时,PhoneGap 的版本是 1.5.0,而我使用的是 jQueryMobile 1.0.1。没有进展。我已经尝试过它是否是任何字段属性的结果,但无济于事。
  • 看起来这不是 PhoneGap 的问题——它也发生在普通的 Android 浏览器中。
  • 确实这和phonegap没有关系。虽然我认为有一个基于 java 的方法来修复它,因为我的应用程序是 phonegap。到目前为止,我发现的唯一解决方法是自动提交表单的 Wytze 隐藏字段。这是一个可怕的黑客攻击,同时我们正在使用phonegap 2.0。我仍然觉得这对 Android 开发人员来说是一个非常令人讨厌的决定。

标签: android html cordova android-softkeyboard


【解决方案1】:

您可以通过在 JQuery 中使用以下绑定来检测下一次键盘按下:

$('input').on('keydown', function(e){
    if(e.which === 9) {
        //your code here
    }
});

“下一步”按钮模拟键盘上的 tab keypress 事件,即键码 9。不幸的是,keypress 和 keyup 事件不会检测到下一个键事件,因此您需要在 keydown 上绑定它。

希望有帮助!

【讨论】:

    【解决方案2】:

    好的,现在我确实有一些看起来像答案和嘎嘎叫的东西。

    这是一个可怕的 hack,我现在正在经历一些副作用,但无论如何这对人类来说是一个小小的飞跃。

    向您的表单添加一个不可见的文本输入,它会在收到焦点后自动提交表单。由于它只能从用户按下“下一步”或从最后一个数字字段中按 Tab 键接收焦点,因此用户序列中应该有一个非常可靠的逻辑。

    <input type='text' style="opacity:0;" onfocus="javascript:$('#thisForm').submit();">
    

    副作用是:

    • 隐藏的表单域将短暂可见。您可以通过以下方式避免这种情况 使用 onfocus 处理程序也重新关注数字字段 刚刚离开。或者您可以将输入的宽度设置为 0。后者最适合我。
    • 如果您像我一样使用 jQueryMobile,那么您自己会招致可怕的页面转换丑陋,因此如果您的表单在对话框中并且提交表单会关闭对话框,请务必设置对话框转换(当它是正在从上一个屏幕打开)到“无”。

    【讨论】:

    • 在 HTC G2 Android 版本 2.3.4 上,我无法通过设置 width: 0 来隐藏输入。但是,我可以使用 background-color: transparent; 隐藏它,并使用 -webkit-tap-highlight-color: rgba(255,255,255,0); 隐藏恼人的橙色 android 焦点边框。 stackoverflow.com/questions/5210481/….
    • 哈克但很有帮助!我通过设置position: absolute 隐藏了输入
    • 看看下面stackoverflow.com/a/20253746/4296895的非hacky答案
    猜你喜欢
    • 2012-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-21
    • 2013-05-15
    • 2015-02-21
    • 1970-01-01
    • 2011-08-25
    相关资源
    最近更新 更多