2012-03-05 60 views
2

在iOS上填寫網頁上的表單時,鍵盤上有Next和Previous按鈕,它們的作用類似於真正的鍵盤上的Tab鍵。我們有一個Web應用程序,我使用PhoneGap將其作爲應用程序實現,Next和Previous按鈕跳過複選框,就好像它們不在那裏一樣。使上一個/下一個按鈕在iOS上的複選框上工作

有什麼辦法可以讓Next和Previous按鈕在iOS上使用PhoneGap/UIWebView/Safari複選框工作嗎?

+0

我在僅限Web的應用程序上遇到同樣的問題。我沒有使用PhoneGap。你有沒有解決這個問題? – 2012-04-02 14:29:55

+0

@JosiahSprague基本上沒有解決方案,除了「等到蘋果修復了UIWebView控件」。此外,我後來發現客戶說謊,它從未在網站版本中工作。 – joshuahealy 2012-04-02 22:51:05

+0

編輯的問題,因爲我發現了一些信息不正確 – joshuahealy 2012-04-02 22:54:39

回答

2

這可以使用HTML來模擬。

在複選框之前插入文本輸入元素。添加JavaScript時,如果該輸入具有焦點時按下某個鍵,則會更改複選框狀態。你可以edit the source。 - 使用長觸摸輸入的力關閉的iOS 6 jsbin的編輯模式的(必須與jsbin代碼或iframe一些交互)選擇文本,和

  • 不使用<fieldset>:關於這個例子筆記始終隱藏插入符號(這對於這種情況聽起來很有用,但不是!)。像在我看來,由於一個糟糕的Safari瀏覽器的bug(但我真的沒有看進去,因爲太多的麻煩沒有舉報。)

  • 使用<option>元素不工作,因爲visibility:hidden;想法如果用戶觸摸某個選項,則鍵盤隱藏。

  • 我沒有花太多時間找到一個好的風格,用於專注複選框 - 如果有人想出更好的東西請評論。

  • 在jsbin示例中有一些垃圾東西沒有用於隱藏閃爍插入符號的想法。如果有隱藏脫字符號的更整潔的解決方案,我會感興趣。

  • 需要一些瀏覽器嗅探才能將此修復應用於iOS設備。

  • 這不是標準的iOS UI行爲,所以在轉到其他應用程序時可能會使用戶感到困惑,或者會產生其他負面影響。解決方案很容易被未來版本的Mobile Safari破解。

  • 我嘗試了幾種不同的方式來隱藏脫字符號,最有效的似乎是使用-webkit-transform: scale(0.01); transform: scale(0.01);。使用font-size:1px;幾乎可以工作,但會導致iPhone在輸入獲得焦點時縮放(測試iPad iOS5並且沒有縮放,測試iPhone iOS6並縮放)。

+1

這是一種可行的解決方法,但我們提出的解決方案是讓客戶相信與設備的默認行爲不同,這是一個壞主意。 – joshuahealy 2013-03-11 23:22:33

+0

需要一些更改才能在Android上使用。具體來說,如果輸入的px高度很小(2px不起作用),並且鍵盤捕捉需要在keydown上而不是按鍵 - 則Chrome將不會顯示鍵盤 - 請參閱http://jsbin.com/ulapab/2 – robocat 2013-05-14 06:32:15

0

簡短的回答是「這是一個功能」。這只是它的方式,可能是因爲Apple不希望人們對他們需要按下哪個按鈕來切換複選框感到困惑。

相關問題