2012-08-24 8 views
5

Ich habe diese iOS Web App, die ein Formular über Ajax einreichen muss, die zum größten Teil funktioniert. Das einzige, was nicht funktioniert, ist, dass die GO-Taste auf der Tastatur nicht reagiert.iOS Web App GO Tastatur Taste reicht nicht Ajax Formular

Auf Desktop-Browser, funktioniert alles für (Submit-Button, oder Enter-Taste)

Auf Safari iOS einreichen, alles funktioniert auch in Ordnung (Submit-Button, GO-Taste der Tastatur)

Aber wenn es als ein mit Web App auf iOS, die GO-Taste funktioniert nicht!

Was könnte dieses Verhalten verursachen? Ein iOS Web-App nutzt noch Safari soweit ich weiß ... :)

<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() { 

     } 
    }); 
}); 

UPDATE (GELÖST): Ich habe die preventDefault() wieder entfernt haben. Es war kein Engpass für mich, aber ich mag keinen unnötigen Code. :)

Als ich return false; am Ende meiner $('#myForm').submit(function() { hinzugefügt habe, hat alles funktioniert, wie ich es wollte.

iOS GO-Taste, Enter und Submit-Taste alle reagieren jetzt.

Antwort

3

Haben Sie auf "Done/Enter" -Taste versucht Einhaken:

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

Danke, aber wenn ich diesen Code vor meinem Formular Code einreichen, wird es keinen Unterschied machen. Es ist merkwürdig, dass es funktioniert, wenn es in der Safari-App angezeigt wird (auch ohne Ihren Code), aber nicht, wenn Sie es als Web-App verwenden (zum Startbildschirm hinzugefügt). – fishbaitfood

0

die vollständige URL für Ihre Formularaktion in Form Geben Sie laden oder nicht über JS. Sie haben zwei Formularaktionen für dasselbe Formular eingerichtet - eine in der Formularaktion ohne die vollständige URL und eine zweite in Ihrer Ajax-Einreichung.

Warum verhindern Sie auch die Standardformularaktion mit Ihrem JS?

4

Ich habe festgestellt, dass das Hinzufügen eines target = "_ blank" zu einem Tag die Go-Taste auf der iOS-Tastatur unterbricht.

Verwandte Themen