javascript - 在opencart中添加产品后如何测试是否成功并重定向网页?

标签 javascript jquery html opencart

我使用以下表单将产品添加到 opencart 购物车。我遇到的问题是,产品添加后,它不会重定向到购物车,而只是显示一个包含产品成功添加通知的页面。

表格如下:

<form action="purchase/?route=checkout/cart/add" id="addToCartForm" method="post">
<input type="hidden" name="product_id" value="40">
<input type="hidden" name="quantity" id="quantity_field" value="">
<input type="hidden" name="price" value=>

<input type="submit" alt="Order Now" title="order now" value="Order Now test">
</form>

和 JavaScript 代码:

<script>
$(document).ready(function() {
    $('form#addToCartForm input[type="submit"]').click(function(e) {
        e.preventDefault(); // prevent the form from submitting
        $.ajax({
            type: 'POST',
            dataType: 'json',
            url: 'purchase/index.php?route=checkout/cart/add'
            data: 'product_id=' + $('form#addToCartForm input[name="product_id"]').val() + '&quantity=' + $('form#addToCartForm input[name="quantity"]').val(),
            success: function(json) {
                window.location = 'purchase/index.php?route=checkout/cart';
                console.log('add success');
            }
        });
    });
});
</script>

单击表单后,页面重定向到 http://*****/purchase/?route=checkout/cart/add 并且页面消息显示“{”success”: "成功:您已将产品名称添加到购物车!","total":"4 件商品 -\u00a64.40"}"

因此,它确实添加了产品,但“成功”时的重定向似乎没有执行任何操作。

javascript 控制台不会通过 console.log('add success'); 输出任何内容(或者它移动到购物车添加页面太快而无法看到)

感谢您的帮助

最佳答案

首先从表单中删除 action 属性,它不是必需的(并且可能会导致调试困惑)

然后使用以下 JavaScript

$('form#addToCartForm').submit(function(e) {
 e.preventDefault();
 $.ajax({
    type: 'POST',
    dataType: 'json',
    url: 'purchase/index.php?route=checkout/cart/add'
    data: 'product_id=' + $('form#addToCartForm input[name="product_id"]').val() + '&quantity=' + $('form#addToCartForm input[name="quantity"]').val(),
    success: function (json) {
        window.location = 'purchase/index.php?route=checkout/cart';
        console.log('add success');
    }

});
});

在你的问题中,你的ajax请求的一部分被注释掉了,这是真的吗,还是只是在发布到SO时被评论了?

关于javascript - 在opencart中添加产品后如何测试是否成功并重定向网页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20641359/

相关文章:

javascript - forEach 与 Bootstrap 网格系统的用法

javascript - Buffer.byteLength 返回截然不同的字节长度

jquery - 每当插入分页符时获取特定的 CSS

jquery - 如果主菜单关闭/打开,则更改子菜单的加号/减号

javascript - CSS 滚动动画不会在 django 中运行

javascript - 在通用菜单加载完成之前不要继续

html - 显示网页时防止垂直滚动条?

javascript - 如何仅在使用 Angular 2 激活 HTML 元素时启用验证?

javascript - Angular 4 的平均堆栈应用程序

php - 使用 Javascript 来确认用 PHP 生成的哈希?