我的观点代码
<?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
));
?>
数组$ temp输出
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 :(得分:0)
您无法修改id
中复选框的checkBoxList
属性。无论如何,它都是无效的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')
获得所有输入。
答案 1 :(得分: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'));
}
});
");
?>