我有一个iOS Web应用程序,需要通过Ajax提交表单,大部分情况下可以工作。唯一不起作用的是键盘上的GO按钮。
在桌面浏览器上,一切都可以通过提交来实现(提交按钮或按下回车键)。
在Safari iOS上,一切也可以正常工作(提交按钮、键盘的GO按钮)。
但是,在iOS上将其用作Web应用程序时,GO按钮无法正常工作!
这种行为可能是什么原因造成的?据我所知,iOS Web应用程序仍然使用Safari... :)
在桌面浏览器上,一切都可以通过提交来实现(提交按钮或按下回车键)。
在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()
。它并没有成为我的瓶颈,但我不喜欢不必要的代码。:)
当我在$('#myForm').submit(function() {
的底部添加return false;
时,一切都按照我想要的方式工作。
iOS GO按钮、Enter和提交按钮现在都有响应了。
form
标签中任何target
属性都会导致GO按钮无法提交表单。我一直在尝试找出为什么Mailchimp表单在iOS Safari中不能正常工作,原来是这个问题。 - TheRightChoyce