我有一个表单,我想通过jQuery ajax提交。它适用于除iPad / iPhone之外的所有浏览器。我似乎无法弄清楚为什么它不起作用。 iPad完全忽略了来自ajax的调用,只是“提交”表单。
这是特定部分的java(它放在文档中):
$(".add_to_cart").bind('submit', function(e) {
var productID = $(this).attr('id');
var quantity = $(this).find("#quantity").val();
$.ajax({
type: 'post',
url: '/add/',
data: 'quantity='+quantity+'&product_id='+productID,
success: function(callback) {
window.location = '/cart/';
}
});
e.preventDefault();
});
这是html
<form id="481" class="add_to_cart" method="post">
<input type="hidden" name="product_id" value="481">
<select name="quantity" id="quantity"><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option></select>
<input type="submit" value="Add to cart" />
</form>
我尝试过live,bind并提交()。在这个示例中,我已经绑定了,但这也无法在iPad或任何其他iOS设备上运行。
答案 0 :(得分:0)
它可能实际上是“正在工作”但却出错。
实际上,即使函数中的某个语法错误也会阻止阻止默认工作。这就是为什么你总是看到e.preventDefault();
作为函数的第一行。这是我建议你先做的事。
此外,ajax调用也可能出错,请使用错误处理程序确认:
error: function (request, status, error) {
alert(request.responseText);
}