2012-02-10 59 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上綁定它。

希望有幫助!

相關問題