2011-04-14 140 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. 
    } 
});