我正在使用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() {
有谁能告诉我如何从电话中排除一个表格?
谢谢。
答案 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})
了解您传递的参数
问题在于您的选择器..您通过提供“表单”来定位所有表单..请提供一个不太通用的选择器。
示例:如果你有类似的东西
<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 })