我遇到了Magento錯誤,我試過將它修復幾個小時,但不知何故,我無法弄清楚它。Magento錯誤TypeError:升級後的prototype.js中的元素爲空
我的客戶商店在Magento 1.4.1.1上運行,他希望我將其升級到最新的1.9.2.2(Community Edition)。所有的工作都很好,模板看起來應該是這樣,但結帳過程不起作用,我真的不知道爲什麼。
每次我把東西放進購物車去結賬時,它會將我帶到我可以選擇註冊或登錄的頁面或繼續作爲訪客。我選擇繼續作爲客人,點擊「下一步」,但絕對沒有任何反應。
Firefox的控制檯顯示我下面的錯誤:
TypeError: element is null in prototype.js:1931
我已檢查.js文件,可以看到此時它使用一個空的元素,它是這樣的:
hide: function(element) {
element = $(element);
element.style.display = 'none';
return element;
所以基本上它試圖隱藏一個對象,它是null。麻煩是:我不知道哪個文件或導致錯誤,以及如何調試它。我閱讀過多篇文章,而且我只能找到一篇帖子,其中說某處的頭部可能沒有關閉標籤。但是隻有很多文件,我不知道在哪裏尋找。
如果有人有類似的問題或知道問題的可能,請分享,以幫助我解決這個問題。
感謝您的幫助!
編輯:
我用螢火蟲,是能夠看到創建錯誤。 似乎我的opcheckout.js有問題。但是這是一個沒有任何改變的magento文件,位於skin/base /文件夾中。
我能想到的唯一的事情就是他們將1.4.1.1中的某些內容更改爲1.9.2.2,但我沒有看到它。
下面是來自opcheckout.js的代碼:由 「Element.hide( '寄存器客戶密碼');」 創建
setMethod: function(){
if ($('login:guest') && $('login:guest').checked) {
this.method = 'guest';
var request = new Ajax.Request(
this.saveMethodUrl,
{method: 'post', onFailure: this.ajaxFailure.bind(this), parameters: {method:'guest'}}
);
Element.hide('register-customer-password');
this.gotoSection('billing', true);
}
該錯誤。
下面是從我的主題的billing.phtml代碼在DIV所在位置:
<li class="fields" id="register-customer-password">
<div class="field">
<label for="billing:customer_password" class="required"><em>*</em><?php echo $this->__('Password') ?></label>
<div class="input-box">
<input type="password" name="billing[customer_password]" id="billing:customer_password" title="<?php echo $this->__('Password') ?>" class="input-text required-entry validate-password" />
</div>
</div>
<div class="field">
<label for="billing:confirm_password" class="required"><em>*</em><?php echo $this->__('Confirm Password') ?></label>
<div class="input-box">
<input type="password" name="billing[confirm_password]" title="<?php echo $this->__('Confirm Password') ?>" id="billing:confirm_password" class="input-text required-entry validate-cpassword" />
</div>
</div>
</li>
所以在我眼裏它試圖隱藏元素是存在的,我不知道爲什麼它說元素爲null。 ...
任何想法?
使用瀏覽器控制檯是否可以展開堆棧跟蹤?這會告訴你最初調用hide()的位置。你得到的錯誤是因爲元素不存在,你不能在不存在的元素上調用'hide()' –
感謝您的回答......我認爲是這樣,但不幸的是我沒有得到堆棧跟蹤:( –
@ GeekNum88我已經更新了我的原始問題,因爲我可能找到了原因......但我無法弄清楚它爲什麼這樣做......你有什麼想法嗎? –