【问题标题】:jQuery .submit() ignored on iPadjQuery .submit() 在 iPad 上被忽略
【发布时间】:2013-01-19 11:51:15
【问题描述】:

我有一个要通过 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 和 submit()。在这个示例中,我已经绑定了,但这在 iPad 或任何其他 iOS 设备上也不起作用。

【问题讨论】:

    标签: jquery ios ipad submit


    【解决方案1】:

    它实际上可能正在“工作”但出现错误。

    事实上,即使是函数中某处的语法错误也会阻止阻止默认值的工作。这就是为什么您总是将e.preventDefault(); 视为函数的第一行。这是我建议你先做的。

    此外,ajax 调用也可能会出错,请使用错误处理程序来确定:

     error: function (request, status, error) {
        alert(request.responseText);
     }
    

    【讨论】:

    • 谢谢,但它还没有工作。我向上移动了 e.preventDefault();。我还添加了错误处理程序,没有显示任何错误。
    猜你喜欢
    • 2018-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多