未捕获的TypeError:无法设置未定义的属性“已禁用” - 在结帐过程中Magento

时间:2013-01-22 18:04:28

标签: javascript magento javascript-events e-commerce magento-1.7

我在我的网站ilgirastore.com的一页结帐的javascript文件中遇到此问题,它发生在客户登录时未注册非注册,可能我希望与某些扩展冲突,之后我我在https://ilgirastore.com/checkout/onepage/时重新加载页面,然后我第二次点击继续按钮,问题不会再次触发,我可以继续结帐。有什么建议? 触发异常的函数是:

_disableEnableAll: function(element, isDisabled) {
    var descendants = element.descendants();
    for (var k in descendants) {
        descendants[k].disabled = isDisabled;
    }
    element.disabled = isDisabled;
}

文件位于:http://ilgirastore.com/skin/frontend/default/shopper/js/opcheckout.js 我正在使用Magento CE 1.7.0.2 你可以自由地测试假订单只是写测试或随机的东西谢谢你们!

2 个答案:

答案 0 :(得分:2)

问题可能在这里for (var k in descendants),因为JavaScript中的foreach不能按预期工作,它可能会经历对象的任何属性,其原型,内部的其他对象等,你可以'我真的很确定它会得到什么。

试试这个

_disableEnableAll: function(element, isDisabled) {
    var descendants = element.descendants();
    var keys = Object.keys(descendants);
    for (var k = 0; k < keys.length; k += 1) {
        descendants[keys[k]].disabled = isDisabled;
    }
    element.disabled = isDisabled;
}

此外,后代可能是一个数组,而不是一个对象,在这种情况下尝试这个

_disableEnableAll: function(element, isDisabled) {
    var descendants = element.descendants();
    for (var k = 0; k < descendants.length; k += 1) {
        descendants[k].disabled = isDisabled;
    }
    element.disabled = isDisabled;
}

答案 1 :(得分:0)

对我来说,这个错误是由Twitter提要(或其他社交插件)引起的。