Jay Welsh
Jay Welsh

Reputation: 496

Add to cart button - Javascript/JQuery error

When webpage loads:

Invalid App Id: Must be a number or numeric string representing the application id.

When Add to Cart button is clicked:

Uncaught TypeError: Cannot read property 'id' of undefined - (index):459

Below is the Javascript, I have marked the area with "ERROR LINE" at (index):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);

Upvotes: 0

Views: 206

Answers (4)

Abhinav
Abhinav

Reputation: 8168

use attr to get the id value

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

NOTE: You can get any attribute value using this method

See jQuery Docs for more info

Upvotes: 0

Rory McCrossan
Rory McCrossan

Reputation: 337714

Assuming button is a DOMElement you can use:

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

Alternatively, you can get the id property from the jQuery object using prop():

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

Upvotes: 1

Shaunak D
Shaunak D

Reputation: 20646

$(button).id - Error Cause

$(button) is a jQuery object, use $(button)[0].id or $(button).prop('id') or just button.id

Upvotes: 1

wintercounter
wintercounter

Reputation: 7488

Try this: button.id.indexOf('ec_shortcut')

Upvotes: 0

Related Questions