2011-04-14 124 views
31

是否有人知道哪些變量進入表單以使iPhone虛擬鍵盤的GO按鈕提交表單而不是?獲取iPhone GO按鈕提交表格

我一直在試圖縮小的情況,這就是我發現:

  • 如果FORM只有一個用戶輸入字段,走按鈕自動提交形式

  • 如果FORM有多個用戶輸入字段,但沒有INPUT TYPE =「SUBMIT」,那麼GO按鈕不會提交表單。

  • 如果FORM有多個用戶輸入字段並且有一個INPUT TYPE =「SUBMIT」,那麼go按鈕不會提交表單。

但是,這並不完全準確,因爲我們遇到了第三種情況不適合我們的情況。

是否有人知道進入GO按鈕工作與不工作的其他因素?

+1

額外的信息: 如果形式所具有的TEXTAREA字段,用戶在打字時,則GO按鈕未顯示。我試圖找到一個解決方案 – mowgli 2012-05-12 10:57:32

+0

你需要有一個行動(可以不指定),沒有別的事情。 – lakerolmaker 2017-04-16 10:57:38

回答

45

所以,這裏是我們的具體問題:

我們曾與多個用戶輸入字段的形式,但不是真正的<input type="submit">(它被通過JS提交)。

因此,GO按鈕什麼都沒做。

然後,我們添加了一個<input type="submit">並將其設置爲display: none希望這可以做到這一點。不。沒有工作。

一時興起,我們改變顯示:無以margin-left: -1000px

這工作!

顯然,Safari正在尋找表單中SUBMIT按鈕的存在,只有當它不顯示時:無,它會在您點擊GO按鈕時觸發它。

+2

我們採取了相同的方法,但我們只是使用z-index將它推回到我們的圖形按鈕下,並使用某些相對有趣的位置將其隱藏起來。 – 2011-07-18 23:30:01

+1

試過用'visibilty:hidden'做這件事,'這很有效,但顯然這個按鈕然後被畫在屏幕上,但沒有顯示出來...因此發生並使我的形狀變得醜陋。將它設置爲'position:absolute;'和'left:-1000px;'也適用於我 – Jurgen 2012-01-05 16:19:41

+5

小心那種「屏幕外」技術!使用css 3d即使對象沒有顯示在屏幕上,也可以轉換網站(或使用透視等網站),瀏覽器會計算它。它會導致性能下降(甚至在着名的文本縮進:-9999px!)。所以我更喜歡不透明:0/visibility:hidden solution – Grsmto 2012-07-12 17:04:34

0

當我遇到這個問題時,只需將我的輸入類型='搜索'包含在表單標籤中即可。希望它可以幫助其他人也有這個問題。

+4

它似乎只有一個輸入字段的表單將使用GO按鈕自動提交...但是如果表單中有多個輸入字段則不會。 – 2011-07-19 01:04:04

18

如果有一個以上的投入,你要隱藏的提交,最好的似乎是:

<input type="submit" style="visibility:hidden;position:absolute"/> 
+0

很好的解決方案。可見性:隱藏使得它不渲染項目和位置絕對隱藏它,但保持在頁面範圍內! – sidonaldson 2014-06-18 10:32:26

+0

有一個錯字:可見性而不是可見性。 – 2014-11-25 07:12:28

0

下面是爲我工作,在頁面上最小副作用的提交按鈕樣式:

.... style="width: 0px ; height: 0px" .... 
0

其他人給出的代碼是正確的。 如果你正在使用jQuery Mobile的再加入

data-role="none" 

到提交輸入標籤。像這樣:

<input type="submit data-role="none" style="visibility: hidden; position: absolute;" /> 
2

我不明白爲什麼一個非常簡單的谷歌地圖的形式不使用iPhone Go按鈕提交。

原來,剝離後,它不能與表單標籤上的target="_blank"一起使用。

刪除了,現在Go按鈕在iPhone上工作。

這裏有一個JSFiddle試試

1

您還可以將按鍵監聽綁定的元素或形式。 iPhone的「進入」按鈕相同的計算機上的回車鍵,焦炭13

$('someElem').bind("keypress", function(e){ 
    // 'Go' key code is 13 
    if (e.which === 13) { 
     console.log("user pressed Go"); 
     // submit your form with explicit JS. 
    } 
});