为什么以下表单不适用于iOS?
适用于Chrome / Android / Windows / Mac但不适用于iOS上的Safari / Chrome。我已经将问题缩小到了jquery post函数。
它使它超过了“e.preventDefault()”但从不发布数据(我有一个PHP脚本确认帖子永远不会发送到服务器)。并且使用alert()的回调不会触发。
<form method="post" action="" id="wl_form">
<div class="form-group">
<label for="first">First Name *</label>
<input type="text" name="first" class="form-control" id="first">
</div>
<button name="submit" type="submit" id="submit" class="btn btn-default">Submit</button>
</form>
var form = document.getElementsByTagName('form')[0];
form.addEventListener('submit', doSubmit);
function doSubmit (e) {
e.preventDefault();
alert("ive made it this far");
$.post("record.php",
{
first: $("#first").val()
},
function(data){
console.log("submitting");
alert("Success: " + data);
});
window.location.href = "nextpage.html";
}
答案 0 :(得分:0)
看起来你在ajax后调用后立即执行重定向。如果您足够快地执行页面传输,则会取消ajax请求,并且您的后端可能永远不会看到它。
正如您在评论中发现的那样,将重定向移动到成功回调中应该允许您完全执行ajax请求,然后执行重定向。