2009-03-26 2 views
1

То, что я точно пытаюсь сделать, это сделать мой скрипт.aculo.us Autocompleter работать для моей формы, когда он загружается внутри объекта Modalbox.Выполнение javascript-кода при загрузке (и внутри) javascript 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 
    }); 
}); 

Тогда у меня Autocompleter DIV и индикатор, который появляется в конце тела моего языка HTML:

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

Я также назвал Modalbox () с evalScripts: true.

Так что я в основном знаю, где моя проблема: я хочу, чтобы мои автозаполнения создавали загрузку формы, но объект «окна» уже загружен, когда скрипт написан, так как это в основном то же окно, что и вызывающий стр.

Это, я честно говоря, не вижу, к какому событию это может быть действительно вызвано. Я даже не знаю, возможно ли это, но я надеюсь, что так оно и есть.

Итак .. это о нем. Я не знаю, что еще добавить. Не стесняйтесь, если вам нужны какие-либо разъяснения по моей проблеме.

ответ

1

Вы знаете о modalbox-х callback functions? Вы можете использовать afterLoad, чтобы создать автозапуск.

+0

О! Просто увидел ваш ответ сразу после написания моего. Обратный вызов действительно оказался решением в конце концов. Большое спасибо :) – Mathieu

1

ОК, похоже, я смог ответить на свой вопрос в конце концов.

Я прилагаю свое создание Autocompleter в функции:

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

Тогда на моей ModalBox() вызова, я добавил 'постнагрузки' параметр обратного вызова:

onclick="Modalbox.show(this.href, {title: this.title, width: 470, evalScripts: true, afterLoad: function() { makeAutocompleters(); }}); return false;" 

Затем он работал: D

Так вот, для всех, кто когда-либо сталкивался с тем же вопросом.

Матье

+0

Похоже, вы были быстрее. Да, это путь. – andi

Смежные вопросы