5

私は、Ajax を介してフォームを送信する必要があるこの iOS Web アプリを持っていますが、これはほとんどの場合機能します。唯一機能していないのは、キーボードの GO ボタンが反応しないことです。

デスクトップ ブラウザでは、すべてが送信用に機能します (送信ボタン、またはキーの入力)

Safari iOS でもすべて正常に動作します (送信ボタン、GO キーボード ボタン)

しかし、iOS で Web アプリとして使用すると、GO ボタンが機能しません。

この動作の原因は何ですか? 私の知る限り、iOS Web アプリはまだ 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()た。ボトルネックにはなりませんでしたが、不要なコードは好きではありません。:)

return false;の一番下に追加すると$('#myForm').submit(function() {、すべてが思いどおりに機能しました。

iOS の GO ボタン、Enter、Submit ボタンがすべて反応するようになりました。

4

3 に答える 3

5

タグに target="_blank" を追加すると、iOS キーボードの [Go] ボタンが機能しなくなることがわかりました。

于 2015-02-23T16:56:33.467 に答える
3

「完了/入力」ボタンにフックしようとしましたか:

$("#myForm input").live("keyup", function(evt) {
  if (evt.keyCode === 13) {
    $("#myForm").trigger("submit");
  }
});
于 2012-08-24T12:10:15.593 に答える
0

フォームでフォーム アクションの完全な URL を指定するか、JS 経由で送信しないでください。同じフォームに 2 つのフォーム アクションが設定されています。1 つは完全な URL のないフォーム アクションで、もう 1 つは Ajax 送信です。

また、JS でデフォルトのフォーム アクションを妨げているのはなぜですか?

于 2012-08-30T22:59:32.020 に答える