添加到购物车按钮 - Javascript / JQuery错误

时间:2015-05-29 08:28:32

标签: javascript jquery

加载网页时:

  

无效的应用ID:必须是表示应用ID的数字或数字字符串。

点击添加到购物车按钮时:

  

未捕获的TypeError:无法读取属性' id'未定义 - (索引):459

以下是Javascript,我在(索引)标记了"ERROR LINE"的区域:459

var productAddToCartForm = new VarienForm('product_addtocart_form');

productAddToCartForm.submit = function(button, url) {
    if (this.validator.validate()) {
        var form = this.form;
        var oldUrl = form.action;
        if (url) {
            form.action = url;
        }
        var e = null;
        if ($(button).id.indexOf('ec_shortcut') != -1) { // -ERROR LINE
            try {
                this.form.submit();
                return;
            } catch (e) {}
        }
        if (!url) {
            url = jQuery('#product_addtocart_form').attr('action');
        }
        url = url.replace("checkout/cart", "oxajax/cart");
        url = url.replace("wishlist/index/cart", "oxajax/cart/add");
        var data = jQuery('#product_addtocart_form').serialize();
        data += '&isAjax=1';
        if ('https:' == document.location.protocol) {
            url = url.replace('http:', 'https:');
        }
        jQuery.fancybox.showActivity();
        jQuery.ajax({
            url: url,
            dataType: 'jsonp',
            type: 'post',
            data: data,
            success: function(data) {
                Olegnax.Ajaxcart.helpers.showMessage(data.message);
                Olegnax.Ajaxcart.helpers.cartSuccessFunc(data);
            }
        });
        this.form.action = oldUrl;
        if (e) {
            throw e;
        }
    }
}.bind(productAddToCartForm);

4 个答案:

答案 0 :(得分:1)

$(button).id - 错误原因

$(button)是一个jQuery对象,使用$(button)[0].id$(button).prop('id')或仅button.id

答案 1 :(得分:1)

假设按钮是DOMElement,您可以使用:

if (button.id.indexOf('ec_shortcut') != -1) {

或者,您可以使用id从jQuery对象获取prop()属性:

if ($(button).prop('id').indexOf('ec_shortcut') != -1) {

答案 2 :(得分:0)

试试这个:button.id.indexOf('ec_shortcut')

答案 3 :(得分:0)

使用attr获取ID值

$(button).attr('id');

注意:您可以使用此方法获取任何属性值

有关详细信息,请参阅jQuery Docs