2012-02-10 70 views
12

这使我疯了,我无法找到答案的任何地方。html phonegap android:数字软键盘有下一个而不是去按钮

我有我的phonegap应用程序中的窗体。如果输入类型=“文本”,则文本键盘弹出并且“转到”显示在角落中。当你点击go时,它会提交表单。这一切都符合我的预期。但是,如果我使用输入类型=“数字”,数字键盘会弹出,并在角落显示“下一个”。当你点击下一步时,如果在按钮标记之前还有另一个输入框,它会转到该输入。没关系。 。 。不理想,但有道理。但是,如果它是页面上的最后一个输入字段,请单击“下一步”不执行任何操作。它不会将焦点放在按钮上(即使使用tabindex),也不会提交表单(理想)。

我使用PhoneGap的1.3.0和jQuery 1.7,如果任何的帮助。

+0

对此,我正在尝试一切。同时PhoneGap最高版本为1.5.0,我使用jQueryMobile 1.0.1。没有进展。我试过,如果这是任何字段属性的后果,但无济于事。 – Wytze 2012-04-04 17:57:01

+0

看起来这不是一个PhoneGap问题 - 它也发生在普通的Android浏览器中。 – 2012-08-06 23:04:24

+0

确实,这与phonegap无关。虽然我会认为有一个基于Java的方法来解决它,因为我的应用程序是phonegap。我迄今发现的唯一修复方法是Wytze的隐藏字段,即自动提交表单。这是一个可怕的黑客攻击,与此同时,我们需要2.0的电话。我仍然觉得这是Android开发人员非常讨厌的决定。 – grail143 2012-08-07 13:45:46

回答

5

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

这是一个可怕的黑客,和我遇到在这一点上一些副作用,但它是人类的一小的飞跃呢。

添加一个不可见的文本输入到您的形式,只要它获得焦点自动提交表单。由于它只能从用户按下“下一个”或从最后一个数字字段切换到用户焦点,用户序列中应该有一个非常稳固的逻辑。

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

副作用是:

  • 隐藏表单域将简要可见。你可以通过使用onfocus处理程序来避免 也重新关注 刚刚离开的数字字段。或者你可以将输入的宽度设置为0.后者对我来说最适合。
  • 如果你使用jQueryMobile像我一样,你对自己邀请可怕的页面过渡丑陋,因此,如果您的形式是在一个对话框,并提交表单关闭对话框,一定要设置对话框过渡(当它是从前一个屏幕打开)变为'无'。
+0

这非常有帮助!谢谢! – grail143 2012-04-16 15:10:35

+0

我无法通过HTC G2 Android版本2.3.4上的width:0隐藏输入。但是,我可以使用background-color:transparent将它隐藏起来,并用-webkit-tap-highlight-color:rgba(255,255,255,0)隐藏恼人的橙色android焦点边框。 http://stackoverflow.com/questions/5210481/disable-android-orange-outline-higlight-on-focus。 – Bobby 2012-09-06 18:56:58

+0

哈克但有帮助!我通过设置'位置:绝对'来隐藏输入 – maGo 2015-12-01 09:44:02

9

可以通过使用在JQuery的下面绑定检测下一个键盘按下:

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

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

希望有帮助!