html phonegap android:数字软键盘有下一个而不是go按钮

时间:2012-02-10 19:13:09

标签: android html cordova android-softkeyboard

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

我的phonegap应用中有表单。如果输入类型="文本",弹出文本键盘," go"显示在角落里。单击go时,它会提交表单。这一切都像我期望的那样有效。但是,如果我使用输入类型="数字",则弹出数字键盘和" next"显示在角落里。当您单击下一步时,如果按钮标记之前有另一个输入框,则它将转到该输入。没关系。 。 。不理想,但有道理。但如果它是页面上的最后一个输入字段,请单击" next"什么也没做。它没有把重点放在按钮上(即使使用tabindex)也没有提交表格(理想)。

我使用的是phonegap 1.3.0和jquery 1.7,如果有任何帮助的话。

2 个答案:

答案 0 :(得分:9)

您可以使用JQuery中的以下绑定检测下一次键盘按下:

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

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

希望有所帮助!

答案 1 :(得分:5)

好的,现在我确实有一些看起来像答案的东西,并且像答案一样嘎嘎作响。

这是一个可怕的黑客攻击,此时我正在经历一些副作用,但无论如何这对人类来说是一个小小的飞跃。

向表单添加一个不可见的文本输入,一旦获得焦点,就会自动提交表单。因为它只能通过用户按下“下一步”来获得焦点。或者从最后一个数字字段中选择标签,用户序列中应该有一个非常可靠的逻辑。

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

副作用是:

  • 隐藏的表单字段将暂时可见。你可以避免这种情况 使用onfocus处理程序也重新关注数字字段 刚刚离开。或者您可以将输入的宽度设置为0.后者最适合我。
  • 如果您像我一样使用jQueryMobile,那么您自己就会邀请糟糕的页面转换丑陋,所以如果您的表单处于对话框中并提交表单关闭对话框,请务必设置对话框转换(当从前一个屏幕打开时)到“没有”#。