我在我的网站 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 您可以自由地使用假订单进行测试,只需编写测试或随机内容即可。
最佳答案
问题可能出在这里 for (var k in Descendants)
因为 JavaScript 中的 foreach 不能按预期工作,它可能会遍历对象的任何属性、其原型(prototype)、其他里面的物体等等,你无法真正确定它得到了什么。
试试这个
_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;
}
关于javascript - 未捕获的类型错误 : Cannot set property ‘disabled’ of undefined - During Checkout Process Magento,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14465126/