开发者问题收集

Prototype.js 错误 - “undefined”为空或不是对象

2011-06-20
5565

我在 Prototype.js 中收到以下错误

'undefined' is null or not an object line 5557 char 5

这是:

var respondersForEvent = registry.get(eventName);
    if (Object.isUndefined(respondersForEvent)) {
      respondersForEvent = [];
      registry.set(eventName, respondersForEvent);
    }

我该如何修复它?

这是给出错误的代码:

Event.observe(window, "load", function () { 
    Event.observe("query", "keypress", function (e) { 
        if (e.keyCode == Event.KEY_RETURN) { 
            search(); 
        } 
    }); 
}); 

它说错误发生在按键上。

2个回答

您有 ID 为“query”的元素吗?请注意,它不能只具有 name 属性 - 对于您提供的代码,它必须具有“query”作为 id 属性。有效示例为:

<input type="text" id="query" />
Samir Talwar
2011-07-09

遇到同样的问题,请查找重复的 javascript 代码。就我而言,我两次包含了 Magento 的迷你搜索表单及其相关的 javascript:

<script type="text/javascript">
//<![CDATA[
var searchForm = new Varien.searchForm('search_mini_form_new', 'search', '<?php echo $this->__('Search entire store here...') ?>');
searchForm.initAutocomplete('<?php echo $this->helper('catalogsearch')->getSuggestUrl() ?>', 'search_autocomplete');
//]]>
</script> 

希望这能帮助遇到同样问题的人。

ThreeCheeseHigh
2011-12-22