Javascript Prototype.js错误-';未定义';是否为null或不是对象

Javascript Prototype.js错误-';未定义';是否为null或不是对象,javascript,prototypejs,Javascript,Prototypejs,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, responder

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(); 
        } 
    }); 
}); 

键盘上显示错误。

是否有ID为“query”的元素?请注意,对于您提供的代码,它不能只具有
名称
属性,它必须具有“query”作为
id
属性。一个有效的例子是:

<input type="text" id="query" />

也有同样的问题,请查找重复的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> 

//

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

这可能与原型无关,但与您使用它的代码有关。是的,我们能看看调用原型方法的代码吗,然后是哪个产生了这个错误?在我看来,把
isUndefined
放在
对象上是不对的。@如果是这样的话,我建议你应该避免一种压倒性的“不公正”感觉,远离原型文档:-)(很多人都同意你的观点;我很矛盾。)如果您有谷歌浏览器或firebug,请在函数(e)后添加“console.log(e);”{…然后在javascript控制台中查看处理程序是否执行以及e中的内容。不要在参数中进行搜索。使用下面的php代码动态获取搜索框名称和id
,并确保您拥有搜索框的id和名称信息。