ul li список с уникальным идентификатором в Zend_Form с использованием декораторов - PullRequest
1 голос
/ 02 октября 2010

Мне нужно создать следующий HTML-код с использованием Zend-форм и декораторов форм ...

<ul>
        <li id="containeruser1">
                <label for="user1"><input type="checkbox" class="textbox"  value="1" id="user1" name="users[]">User One</label>
        </li>
        <li id="containeruser2">
                <label for="user2"><input type="checkbox" class="textbox"  value="2" id="user2" name="users[]">User Two</label>
        </li>
        <li id="containeruser3">
                <label for="user3"><input type="checkbox" class="textbox"  value="3" id="user3" name="users[]">User Three</label>
        </li>
        <li id="containeruser4">
                <label for="user4"><input type="checkbox" class="textbox"  value="4" id="user4" name="users[]">User Four</label>
        </li>
</ul>

Я использую php-код ....

 $userelement = new Zend_Form_Element_MultiCheckbox ( 'users' );
                    $userelement-> setRequired(true)
                    ->addDecorator("<li>")
                    ->addMultiOptions ( array ('1' => 'User One', '2' => 'User Two', '3' => 'User Three', '4' => 'User Four' ) )
                    ->setSeparator ( '</li><li>' )->addValidator('NotEmpty', true)
                    ->addErrorMessage('Please select at

least one user');
                $userelement->class = 'textbox';

Выводне совсем то, что я хочу .... Каждый тег li должен иметь уникальный идентификатор, чтобы я мог использовать некоторые js для проверки и модификации на стороне клиента ...... Я начинаю использовать Zend_form, и декораторы немногосбивает с толку ...... Пожалуйста, помогите ...

Ответы [ 3 ]

1 голос
/ 28 декабря 2010

У меня есть пользовательские скрипты ViewScripts для каждого типа элемента, что дает мне множество стилей и скриптов. Вот мои сообщения на эту тему:

0 голосов
/ 05 марта 2011

Я расширил Zend_Form_Element_MultiCheckbox и создал новый элемент вместо использования декораторов элементов .... Спасибо за вашу помощь ...

0 голосов
/ 02 октября 2010

Рассмотрите возможность использования JS для определения местоположения контейнера.Таким образом, вам не нужно менять декораторы.
Пример jQuery

// example 1
$('#user1').parent().parent().css('color', 'green');

// example 2
$('#user1').parents('li').css('color', 'green');
...