Jquery ajaxSubmit也执行常规表单提交

Jquery ajaxSubmit也执行常规表单提交,ajax,magento,jquery,form-submit,Ajax,Magento,Jquery,Form Submit,我正在尝试为我的一个Magento商店运行以下Jquery ajaxSubmit。我使用ajaxSubmit是因为我还有2个文件要从表单上传(这意味着我需要$\u文件中的数据)。但是当我使用ajaxSubmit时,它也会使用普通表单submit,它会刷新页面并将我带到下一页,而不是停留在同一页上,在那里我有一个弹出框,其中包含更多内容。我有返回false以防止出现这种情况,但失败了。 提交代码: $('#quickbuyform').submit(function (){ // No

我正在尝试为我的一个Magento商店运行以下Jquery ajaxSubmit。我使用ajaxSubmit是因为我还有2个文件要从表单上传(这意味着我需要
$\u文件中的数据)。但是当我使用ajaxSubmit时,它也会使用普通表单submit,它会刷新页面并将我带到下一页,而不是停留在同一页上,在那里我有一个弹出框,其中包含更多内容。我有
返回false以防止出现这种情况,但失败了。
提交代码:

$('#quickbuyform').submit(function (){

    // No Accessories: normal submit
    if ($('#accessories ul li').size()==0) {
        return true;
    }

    strName = "<?php echo $_product->getName() ?>";

    // loading message
    $('#pop_accessories_area_message').html("We are adding '"+strName+"' into your shopping cart ...");
    // Pop with loading
    popAccessories();

    // loading icon
    //var dataString = $('#quickbuyform').serialize();
    $.ajaxSubmit({  
          type: "POST",  
          url: $('#quickbuyform').attr('action'),
          data: dataString,  
          beforeSubmit:  showRequest,
          success: function() {
            // display cart link:
            $('#pop_accessories_area_message').html(strName+" was added to <a href='<?php echo $this->getUrl('checkout/cart') ?>'>your shopping cart</a>.");
            $('.pop_accessories_area_button').show();
            //window.location = '<?php //echo $this->getUrl('checkout/cart') ?>';
          }  
        });
    return false;
});

您可以通过调用事件对象的
preventDefault
方法来停止正常表单提交

$('#quickbuyform').submit(function (e) {
    e.preventDefault();
    ...
});

尝试改用$.ajax,或
e.preventDefault()如上所述:

$.ajax({
          type: "POST",  
          url: $('#quickbuyform').attr('action'),
          data: dataString,  
          beforeSubmit:  showRequest,
          success: function() {
            // display cart link:
            $('#pop_accessories_area_message').html(strName+" was added to <a href='<?php echo $this->getUrl('checkout/cart') ?>'>your shopping cart</a>.");
            $('.pop_accessories_area_button').show();
            //window.location = '<?php //echo $this->getUrl('checkout/cart') ?>';
          }  
});
$.ajax({
类型:“POST”,
url:$('quickbuyform').attr('action'),
数据:dataString,
提交前:showRequest,
成功:函数(){
//显示购物车链接:
$(“#pop#U附件#U区域#U消息”).html(strName+”已添加到“);
$('.pop_附件_区域_按钮').show();
//window.location='';
}  
});

你应该试试这样的方法-

$("#quickbuyform").submit(function(e){
    e.preventDefault();
  });​

这将阻止jQuery事件的默认行为。

$。ajax不会将文件发布到$\u文件数组。。。所以$ajax已经过时了,我想我试过e.preventDefault();但是如果我在返回false之前将语句放在函数顶部,它将停止提交表单;,它做正常的提交。你知道把这句话放在哪里吗?你应该把它加在最上面。ajaxSubmit方法仍然应该像往常一样提交表单。是的,我把它放在顶部,但是在那之后ajaxSubmit没有被调用,如果我删除它,ajaxSubmit将调用,但作为一个正常的提交:(你是想在}之后写
$('#quickbuyform')。ajaxSubmit()
而不是
$。ajaxSubmit()
?添加一个),就像在'$('#quickbuyform'中一样).submit(函数(e){e.preventDefault();})`您不需要指定
url
选项。如果表单的
action
属性中有正确的url,ajaxSubmit将默认使用此选项。
$("#quickbuyform").submit(function(e){
    e.preventDefault();
  });​