2013-07-06 37 views
0

代碼如何取代YII複選框的ID?我的觀點的

<?php 
$temp = CHtml::listData($roles,'name','name'); 
       echo $form->checkBoxList($model, 'role', $temp, 
          array('labelOptions'=>array('style'=>'display:inline; padding-right: 1em; vertical-align:middle;'), // add this code 
        )); 
      ?> 

數組$溫度輸出

array(7) { ["Administrator"]=> string(13) "Administrator" ["Creator"]=> string(7) "Creator" ["Director"]=> string(8) "Director" ["Implementer"]=> string(11) "Implementer" ["Reviewer"]=> string(8) "Reviewer" ["Superadmin"]=> string(10) "Superadmin" ["Temporary Director"]=> string(18) "Temporary Director" } 

在HTML輸出

<span id="User_role"><input id="User_role_0" value="Administrator" type="checkbox" name="User[role][]"> <label style="display:inline; padding-right: 1em; vertical-align:middle;" for="User_role_0">Administrator</label><br> 
<input id="User_role_1" value="Creator" type="checkbox" name="User[role][]"> <label style="display:inline; padding-right: 1em; vertical-align:middle;" for="User_role_1">Creator</label><br> 
<input id="User_role_2" value="Director" type="checkbox" name="User[role][]"> <label style="display:inline; padding-right: 1em; vertical-align:middle;" for="User_role_2">Director</label><br> 
<input id="User_role_3" value="Implementer" type="checkbox" name="User[role][]"> <label style="display:inline; padding-right: 1em; vertical-align:middle;" for="User_role_3">Implementer</label><br> 
<input id="User_role_4" value="Reviewer" type="checkbox" name="User[role][]"> <label style="display:inline; padding-right: 1em; vertical-align:middle;" for="User_role_4">Reviewer</label><br> 
<input id="User_role_5" value="Superadmin" type="checkbox" name="User[role][]"> <label style="display:inline; padding-right: 1em; vertical-align:middle;" for="User_role_5">Superadmin</label><br> 
<input id="User_role_6" value="Temporary Director" type="checkbox" name="User[role][]"> <label style="display:inline; padding-right: 1em; vertical-align:middle;" for="User_role_6">Temporary Director</label></span> 

我要的是

<input id="User_role_Administrator" value="Administrator" type="checkbox" name="User[role][]"> 

如何噓我應該做

回答

0

您不能修改checkBoxList中複選框的id屬性。無論如何,這將是無效的HTML,因爲您會將相同的id分配給DOM上的多個元素。

我假設你需要id來解決來自javascript的輸入。你可以指定一個class代替:

<?php echo $form->checkBoxList($model, 'role', $temp, array(
    'labelOptions'=>array(
     'style'=>'display:inline; padding-right: 1em; vertical-align:middle;' 
    ), 
    'class' => 'user-role', 
)); ?> 

然後在jQuery你所有投入與$('.user-role')

+0

其實,我想拿起識別ID /班。因爲我想用jQuery來做一些事情。我怎麼能通過id/class來分配? –

0

這是複選框列表。

<?php 
       echo $form->checkBoxList($model, 'role', $arr_roles, 
        array('labelOptions'=>array('style'=>'display:inline; padding-right: 1em; vertical-align:middle;'), 
          'class'=>'user-role',)); 
      ?> 

這是JavaScript的

<?php 
Yii::app()->clientScript->registerScript('temp-director', "  
    $('input.user-role').click(function(){ 
     if($(this).val() == 'Temporary Director'){  
      $('#extra').toggle($(this).is(':checked')); 
     } 
    }); 
"); 
?> 
相關問題