从AJAX提交中排除表单

时间:2013-05-30 09:29:03

标签: jquery ajax

我正在使用AJAX提交位于div#cart-container内的两个表单。

我不想通过这个div中的AJAX提交第三种形式。

我试图只针对表单,但由于某种原因,我能够让代码工作的唯一方法是调用以下代码:

$('#cart-container').on('submit','form',function() {
    $(this).ajaxSubmit({
        beforeSubmit: function() {
            $('#purchase-submissions, .cart').fadeTo('fast', 0.3);
        },
        success: cart
    }); 
    return false; 
});

function cart() {
    var path = '/enter/embed-cart';
    $('#cart-container').load(path, function() {
        $('#purchase-submissions, .cart').fadeTo('fast', 1);
    }); 
}

如果我只针对此行中的两个表单,就像这样只调用AJAX一次。

$('#add_cart_form, #update_form').on('submit',function() {

有谁能告诉我如何从电话中排除一个表格?

谢谢。

2 个答案:

答案 0 :(得分:4)

你可以这样做:

$('#cart-container').on('submit', 'form', function (event) {
    if (event.target.id == 'formID') return;
    // Your ajax call code here
});

此处,formID是您要从AJAX提交中排除的表单的ID。

此外,您可以尝试以这种方式定位两个表单:

$('#cart-container').on('submit','#add_cart_form, #update_form',function() {

答案 1 :(得分:1)

当你在做的时候 - > on('submit','form',function(){whatever})

了解您传递的参数

  1. 'submit' - >事件
  2. 'form' - >目标元素的选择器
  3. function(){whatever} - >当此事件在选定的元素上占用时调用的函数。
  4. 问题在于您的选择器..您通过提供“表单”来定位所有表单..请提供一个不太通用的选择器。

    示例:如果你有类似的东西

    <div id="form-div">
        <form></form>
        <form></form>
        <form></form>
    </div>
    

    然后

    on('submit','#form-div:nth-child(1), #form-div:nth-child(2)',function(){ whatever })