几个 Ajax 添加到购物车表单在一个页面上
Several Ajax add to cart forms on one page
我在一个网站上有一个页面,同一页面上有几个产品。
我正在尝试让一个 Ajax 添加到购物车以适用于每个产品(每个都有自己的形式),但无法弄清楚如何在不为每个产品编写 Jquery 函数的情况下区分一个产品和另一个产品。
下面的脚本适用于页面上的一个产品,因为表单有自己的 ID,但是当一个页面上有 20 个产品时,这不起作用。
function update_cart(data, statusText, xhr, $form)
{
if (data.success)
{
$("input[name=XID]").val(data.XID);
$('.cart_total').html(data.cart_total);
}
return true;
}
var cart_form_options = {
success: update_cart,
dataType: 'json'
}
jQuery(document).ready(function($){
$("#add_to_cart_submit").click(function(){
$("#add_to_cart_form").ajaxForm(cart_form_options);
$("#add_to_cart_form").submit();
})
});
非常感谢!!
为每个产品提供"添加到购物车"按钮/表单一个唯一的属性,例如产品 ID。 然后,当单击"添加到购物车"按钮时,您可以获取该属性以找出要添加的确切产品。
<form id="add_to_cart_form" productID="product1">
然后在 js 中:
var product = $("add_to_cart_form").attr("productID");
啊...我想我已经解决了。 稍微玩一玩就行了。
生成的代码:
<script type="text/javascript">
var $j = jQuery.noConflict();
$j(document).ready(function () {
$j('.add_to_cart_form').submit(function() {
$j('.add_submit', this).val('Processing...');
var url = $j(this).attr('action');
var data = $j(this).serialize();
$j.post(url, data, function() {$j('.cart-wrap').load('{site_url}cart');
$j('.mini-cart').load('{site_url}cart');
$j('.add_submit').val('add to cart');
$j('.cart-thankyou').slideDown( 500, function() {});
$j('.cart-thankyou').delay(1500).slideUp(400);
});
return false;
});
});
</script>
相关文章:
- 我可以在json对象中添加一个函数吗
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 单击更改图标并通过javascript添加一个css类
- fluxxor向一个flux实例添加一组以上的操作
- 当在Ember中点击一个项目时,我如何将一个活动类添加到项目列表中
- 如何在Angular单元测试中从另一个控制器的rootScope将方法添加到rootScope中
- 将添加一个相同类型的事件附加或覆盖以前添加的具有相同名称的事件
- angularjs移除焦点上的活动类并添加到下一个项目
- 使用jquery contains获取一个元素并添加类
- 有没有添加一个ng点击到md背景
- 如何为下拉列表的每个选项添加一个属性
- javascript函数将数据添加到屏幕,但随后被另一个函数覆盖
- 单击删除其中一个添加的行
- 几个jQuery日期选择器小部件,只向其中一个添加类
- 我想创建一个添加新表单的按钮
- Babel v6:我如何/可以编写一个添加新语法(即新运算符)的插件
- GWT SimplePager -为每个下一个和上一个添加历史记录
- 自动提交表单上的最大长度,-为现有的一个添加java脚本代码
- 如何在jquery中移除一个添加了类的类
- 动态更改URL,而不需要将前一个添加到历史堆栈