我使用AJAX提交位于div #cart-container内的两个表单。
有第三个表单,我不想通过AJAX在这个div中提交。
我试图只针对表单,但由于某种原因,我能够让代码工作的唯一方法是通过调用以下代码:
$('#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() {
谁能告诉我如何从调用中排除一个表单?
谢谢。
你可以这样做:
$('#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() {
当你在做-> on('submit','form',function(){whatever})
理解你传递的参数
- 'submit' -> event
- '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 })