Php 使用装饰器的Zend_表单中具有唯一id的ul li列表

Php 使用装饰器的Zend_表单中具有唯一id的ul li列表,php,model-view-controller,zend-framework,zend-form,Php,Model View Controller,Zend Framework,Zend Form,我需要使用Zend表单和表单装饰器生成以下html <ul> <li id="containeruser1"> <label for="user1"><input type="checkbox" class="textbox" value="1" id="user1" name="users[]">User One</label> </li>

我需要使用Zend表单和表单装饰器生成以下html

<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';
$userelement=new Zend_Form_Element_MultiCheckbox('users');
$userelement->setRequired(true)
->addDecorator(
  • ) ->addMultiOptions(数组('1'=>'用户一','2'=>'用户二','3'=>'用户三','4'=>'用户四')) ->setSeparator(“
  • ”)->addValidator('NotEmpty',true) ->addErrorMessage('请在 至少一个用户“); $userelement->class='textbox';

  • 输出不完全是我想要的。。。。每个li标签都需要有一个唯一的id,这样我就可以使用一些js来进行客户端验证和修改。。。。。。我开始使用Zend_表单,装饰程序有点混乱……请帮助……

    考虑使用JS定位容器。这样,您就不必更换装饰器。
    jQuery示例

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

    考虑使用JS来定位容器。这样,您就不必更换装饰器。
    jQuery示例

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

    对于每种元素类型,我都有自定义的ViewScripts,这为我提供了大量的样式和脚本挂钩。以下是我的帖子:


    我为每种元素类型提供了自定义的ViewScripts,为我提供了大量的样式和脚本挂钩。以下是我的帖子:


    我扩展了Zend\u Form\u Element\u MultiCheckbox,并制作了一个新的元素,而不是使用元素装饰器。。。。感谢您的帮助……

    我扩展了Zend\u Form\u Element\u MultiCheckbox,并制作了一个新的元素,而不是使用元素装饰器。。。。谢谢你的帮助