2012-08-24 11 views
5

Tengo esta aplicación web iOS, que debe enviar un formulario a través de Ajax, que funciona en su mayor parte. Lo único que no funciona es que el botón IR del teclado no responde.iOS aplicación web Botón de teclado GO no envía formulario Ajax

El navegador de escritorio, todo funciona de presentación (botón de enviar, o la tecla enter)

En Safari para iOS, todo funciona muy bien también (botón del teclado botón de enviar, GO)

Pero cuando se utiliza como una Aplicación web en iOS, ¡el botón IR no funciona!

¿Qué podría causar este comportamiento? Una aplicación web iOS sigue utilizando Safari por lo que yo sé ... :)

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

     } 
    }); 
}); 

ACTUALIZACIÓN (SOLUCIONADO): He quitado la preventDefault() nuevo. No me estaba emborrachando, pero no me gusta el código innecesario. :)

Cuando agregué return false; en la parte inferior de mi $('#myForm').submit(function() {, todo funcionó como yo quería.

iOS Botón GO, Enter y botón Submit, todos responden ahora.

Respuesta

3

has necesitado enganche al botón "Done/introducir":

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

Gracias, pero si coloco ese código antes de que mi formulario envíe el código, no hará la diferencia. Es extraño que FUNCIONA cuando se ve dentro de la aplicación Safari (incluso sin su fragmento de código), pero no cuando se usa como una aplicación web (se agrega a la pantalla de inicio). – fishbaitfood

0

proporcionar la dirección URL completa para su forma de acción en la forma, o no se someten a través de JS. tiene dos acciones de formulario configuradas para el mismo formulario, una en la acción de formulario sin la URL completa y otra en su presentación de Ajax.

Además, ¿por qué impide la acción de formulario predeterminada con su JS?

4

Descubrí que agregar un objetivo = "_ en blanco" a una etiqueta romperá el botón Ir en el teclado de iOS.

Cuestiones relacionadas