Как перебирать элементы / поля формы с помощью Dojo

Кто-нибудь знает, как можно перебрать все элементы в форме с помощью Dojo? (сама форма была создана через ZendFW Zend_Dojo_Form)

Что я пытаюсь сделать, так это просмотреть все поля / входные данные в форме и, если возможно, изменить их значение id. Однако, даже если невозможно изменить идентификаторы полей, мне все равно хотелось бы знать, как перебирать элементы формы и получать доступ к их свойствам / значениям.

Спасибо!


person user387302    schedule 16.07.2010    source источник


Ответы (2)


Zend добавляет переменную Dijits, отображаемую на странице, под названием zendDijits. Пройдите через это, получив исходный элемент по идентификатору (это первый элемент в массиве), затем с помощью dojo установите идентификатор, используя:

for(var i in zendDijits) {
var theid = zendDijits[i]['id'];
dojo.byId(theid).id = 'new';
}

Никогда не делал этого раньше, но это должно сработать

person Ashley    schedule 18.07.2010
comment
Хм, это интересно, я даже не думал об этом. Похоже на хорошее решение, мне нужно попробовать. Спасибо! - person user387302; 18.07.2010

Поскольку элементы являются объектами, это просто:

foreach($form->getElements() as $element) {
     $element->id = 'new';
}

$ form, очевидно, является вашим объектом формы из вашего класса. Т.е.:

$form = new My_Form_Class;

Как я уже сказал, это объект, поэтому его свойства можно легко изменить. var_dump элемент, чтобы увидеть, что вы можете изменить, если не уверены

person Ashley    schedule 17.07.2010
comment
Спасибо за ответ, но я надеялся получить доступ к элементам через javascript (чтобы я мог настроить их после загрузки страницы). Любые идеи? - person user387302; 17.07.2010