2015-01-05 2 views
1

У меня есть форма, которая имеет некоторые поля. Одно поле автозаполнено . Поле заполняется информацией из таблицыУстановить фокус на поле автозаполнения

$f->addField('autocomplete','idfield','Field')->setValueList($this->api->db->dsql() 
->table('items')->field('id,name')->do_getAssoc()); 

Я пытаюсь установить фокус на этом поле при загрузке страницы.

Я сделал это

В верхней части страницы

$p->js()->_load('seteo_foco'); 

А потом

seteo_foco.js

$(function(){ 
    $("select:first").focus(); 
}) 

Но это не работает.

Любой может помочь?

Благодаря

+0

какая версия ATK вы используете? В текущем 4.2 я не могу найти метод do_getAssoc() 'DSQL. Это выглядит от старой школы ATK :) Вы можете использовать просто '-> select()' вместо '-> do_getAssoc()', потому что все методы 'do_ *' устарели. – DarkSide

ответ

1

Попробуйте ИСТИНУ как $this->js(true)->_load('seteo_foco'); для загрузки JS файла.

Но в вашем коде js ваш селектор неверен. Вам нужно указать уникальное поле. Я использовал бы что-то вроде $form->getElement('field_name')->js(true)->focus(); на странице после того, как форма была инициализирована.

+0

Я проверил этот код, и он работает нормально. – stakantin

+0

'$ form-> getElement ('field_name') -> js (true) -> focus()' в этом случае лучше и лучше, потому что нет необходимости загружать дополнительный файл js только для фокусировки одного поля :) – DarkSide

+0

Это 4.0.3 Я знаю его старый. Я могу сделать что-то вроде $ p-> js (true) -> _ selector ('# field') -> hide(); но это с фокусом() нет. Спасибо за вашу помощь –

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