1

我有一个购物车。我的购物车对每个项目都有删除按钮,如下所示:

....
<tr style="text-size:0.8em">
    <td>Music CD</td><td>23</td><td>£51.89</td>
    <td>
        <form method="post" action="" class="remove">
        <input type="hidden" name="pid" value="1" />
        <input type="image" src="http://.../.../delete.png" name="remove" class="remove" value="x" text="x"/>
        </form>
    </td>
</tr>
<tr style="text-size:0.8em">
    <td>DVD</td><td>5</td><td>£12.23</td>
    <td>
        <form method="post" action="" class="remove">
        <input type="hidden" name="pid" value="2" />
        <input type="image" src="http://.../.../delete.png" name="remove" class="remove" value="x" text="x"/>
        </form>
    </td>
</tr>
....

和 jQuery

jQuery('.remove').submit(function(data) {
    // Validate & remove item from cart stuff 
    return false;
});

我的表单通过发布表单来工作,但是我希望将其 ajaxify。

我如何告诉 jQuery 从篮子中删除哪个 pid?

如何修改 html 和 js 以便我的 jQuery 脚本知道要从购物篮中删除哪个特定产品 (pid)?

为了清楚起见...您将看到此示例中有两种形式。如果购物车中有更多商品,就会有更多表单......那么当表单之间的唯一区别是 pid 时,我如何告诉 jQuery 提交了哪个表单?

4

2 回答 2

2

很高兴知道你解决了你的问题,肉汁。

这是使用您以前的标记的一些替代方法(在您的问题中发布的):

$(".remove").click(function(e) {
    pid = $(this).siblings("#name").attr("value");
    // You got the pid. Continue by removing this pid from your cart
});

或者

$(".remove").click(function(e) {
    pid = $(this).siblings("input:hidden").attr("value");
    // You got the pid. Continue by removing this pid from your cart
});

这样您就不必弄乱删除按钮。

PS:抱歉回复晚了。我正在检查一些参考资料以获取答案。:)

于 2013-01-03T01:13:03.867 回答
0

感谢 Amir 解决了问题:

jQuery('.remove').click(function(data) {
    var pid = jQuery(this).attr('name');
    alert(pid);
    return false;
});

HTML 更改

<input type="image" src="http://.../.../delete.png" name="1" class="remove" />

我将产品的 pid 设置为删除按钮的名称。

于 2013-01-03T01:04:17.007 回答