【问题标题】:iOS web app GO keyboard button doesn't submit Ajax formiOS Web 应用程序 GO 键盘按钮不提交 Ajax 表单
【发布时间】:2012-08-24 10:58:32
【问题描述】:

我有这个 iOS 网络应用程序,它需要通过 Ajax 提交表单,这在大多数情况下都有效。 唯一不起作用的是键盘上的 GO 按钮没有响应。

在桌面浏览器上,一切正常提交(提交按钮,或输入键)

在 Safari iOS 上,一切正常(提交按钮、GO 键盘按钮)

但是在 iOS 上作为 Web App 使用时,GO 按钮不起作用!

什么可能导致这种行为?据我所知,iOS 网络应用程序仍在使用 Safari... :)

<form id="myForm" name="form" action="link-to-script.php" method="post">
<table>
    <tr>
        <td><input id="name" name="name" type="text" size="20" maxlength="25" /></td>
    </tr>
    <tr>
        <td><input id="email" name="email" type="text" size="20" maxlength="50" /></td>
    </tr>
    <tr>
        <td><input type="submit" name="Submit" value="Send" /></td>
    </tr>
</table>

$('#myForm').submit(function(e) {
    e.preventDefault();  // Doesn't matter
    var dataString = $(this).serialize();
    $.ajax({
        type: "POST",
        url: "http://link-to-script.php?",  // Valid link for the use of this form
        cache: false,
        data: dataString,
        success: function() {

        }
    });
});

更新(已解决):我再次删除了preventDefault()。它并没有成为我的瓶颈,但我不喜欢不必要的代码。 :)

当我在$('#myForm').submit(function() { 的底部添加return false; 时,一切正常。

iOS GO 按钮、Enter 和 Submit 按钮现在都响应了。

【问题讨论】:

    标签: jquery ajax jquery-ui ios5 iphone-web-app


    【解决方案1】:

    我发现在标签中添加 target="_blank" 会破坏 iOS 键盘上的 Go 按钮。

    【讨论】:

    • 快到 2019 年了,我也遇到了同样的问题。我发现form 标签中的任何target 属性都会导致GO 按钮不提交表单。我试图找出为什么 mailchimp 表单在 iOS safari 中无法正常工作,这就是问题所在。
    【解决方案2】:

    您是否尝试过挂接到“完成/进入”按钮:

    $("#myForm input").live("keyup", function(evt) {
      if (evt.keyCode === 13) {
        $("#myForm").trigger("submit");
      }
    });
    

    【讨论】:

    • 谢谢,但如果我将该代码放在我的表单提交代码之前,它不会有任何区别。奇怪的是,在 Safari 应用程序中查看时它确实有效(即使没有您的代码),但在将其用作 Web 应用程序(添加到主屏幕)时却不行。
    【解决方案3】:

    在表单中提供表单操作的完整 URL,或者不要通过 JS 提交。您为同一个表单设置了两个表单操作 - 一个在没有完整 URL 的表单操作中,第二个在您的 Ajax 提交中。

    另外,为什么要阻止 JS 的默认表单操作?

    【讨论】:

      猜你喜欢
      • 2017-10-04
      • 1970-01-01
      • 2011-01-26
      • 2014-04-21
      • 1970-01-01
      • 2012-02-10
      • 2011-04-05
      • 1970-01-01
      • 2014-08-10
      相关资源
      最近更新 更多