在javascript Modalbox加载(和内部)时执行javascript代码

在javascript Modalbox加载(和内部)时执行javascript代码,javascript,ajax,prototypejs,scriptaculous,autocomplete,Javascript,Ajax,Prototypejs,Scriptaculous,Autocomplete,我要做的就是让script.aculo.us自动补全器在加载到Modalbox对象中时对我的表单起作用 当然,我在以独立形式加载表单时尝试了自动完成程序,它的工作方式与预期的一样。以下是我加载该功能的JS代码,仅供参考: Event.observe(window, 'load', function() { new Ajax.Autocompleter("gl_name", "autocomplete_choices", "<? echo WEB_ROOT . $page_name; ?&

我要做的就是让script.aculo.us自动补全器在加载到Modalbox对象中时对我的表单起作用

当然,我在以独立形式加载表单时尝试了自动完成程序,它的工作方式与预期的一样。以下是我加载该功能的JS代码,仅供参考:

Event.observe(window, 'load', function() { 
new Ajax.Autocompleter("gl_name", "autocomplete_choices", "<? echo WEB_ROOT . $page_name; ?>?action=ajax_autocomplete", {
    paramName: "value",
    minChars: 2,
    indicator: 'indicator1',
    afterUpdateElement: getSelectionIdGL
    });
});
Event.observe(窗口'load',函数(){
新的Ajax.Autocompleter(“gl\u名称”、“autocomplete\u选项”、“?action=Ajax\u autocomplete”{
参数名称:“值”,
明查斯:2,
指示符:“指示符1”,
afterUpdateElement:getSelectionIdGL
});
});
然后,我的自动补全器div和指示符出现在html正文的末尾:

<span id="indicator1" style="display: none">
    <img src="/images/spinner.gif" alt="Working..." />
</span>
<div id="autocomplete_choices" class="autocomplete"></div>

我还使用evalscript:true调用了Modalbox()

所以我基本上知道我的问题在哪里:我希望在加载表单时创建自动完成器,但是在编写脚本时“窗口”对象已经加载,因为它基本上与调用页面是同一个窗口

也就是说,我真的不知道到底会触发什么样的事件。我甚至不知道这是否真的可能,但我当然希望是这样


所以。。就这样。我不知道还有什么要补充的。如果您需要对我的问题进行任何澄清,请不要犹豫。

好的,看来我终于能够回答我自己的问题了

我在函数中包含了我创建的自动完成程序:

makeAutocompleters = function() {

new Ajax.Autocompleter("ass_name", "autocomplete_choices", "<? echo WEB_ROOT . $page_name; ?>?action=ajax_autocomplete", {
    paramName: "value",
    minChars: 2,
    indicator: 'indicator1',
    afterUpdateElement: getSelectionIdAss
    });
}
然后它成功了:D

这就是,对于任何遇到同样问题的人来说


马修

你知道莫代尔博克斯的吗?
您可以使用后加载来创建自动完成器。

看起来您更快了。是的,这就是路。哦!在我写了自己的答案之后,我看到了你的答案。事实证明,回调终究是解决方案。非常感谢:)
onclick="Modalbox.show(this.href, {title: this.title, width: 470, evalScripts: true, afterLoad: function() { makeAutocompleters(); }}); return false;"