我需要這個按鈕組選擇哪個應該細節上被用於在搜索進行過濾。這就是爲什麼我在我的模型中有一些幫助屬性(在這些示例中堅持命名約定)$ leftSearch,$ middleSearch和$ rightSearch。
我希望按鈕保持推入或取出,具體取決於用戶的選擇(否則會引起混淆,因爲按鈕在每次刷新後都未按下,但搜索屬性將存儲在隱藏字段中,用戶看不到)。 我實現了使用
'active' => ($model->leftSearch)?true:false,
另一件事是數據值將取決於什麼用戶提交頁面之前,選擇了不同的。這與做:
'data-value' => ($model->leftSearch)?0:1,
在查看完整的代碼如下所示:
$this->widget('bootstrap.widgets.TbButtonGroup', array(
'type' => 'primary',
'toggle' => 'checkbox',
'buttons' => array(
array('label'=>'Left',
'active' => ($model->leftSearch)?true:false,
'htmlOptions'=>array(
'data-field' => 'Model_leftSearch',
'data-value' => ($model->leftSearch)?0:1,
),),
array('label'=>'Middle',
'active' => ($model->middleSearch)?true:false,
'htmlOptions'=>array(
'data-field' => 'Model_middleSearch',
'data-value' => ($model->middleSearch)?0:1,
),),
array('label'=>'Right',
'active' => ($model->rightSearch)?true:false,
'htmlOptions'=>array(
'data-field' => 'Model_rightSearch',
'data-value' => ($model->rightSearch)?0:1,
),),
),
));
echo CHtml::activeHiddenField($model, 'leftSearch');
echo CHtml::activeHiddenField($model, 'middleSearch');
echo CHtml::activeHiddenField($model, 'rightSearch');
的JavaScript保持完全一致,那麼frostyterrier發佈
Yii::app()->clientScript->registerScript('buttonGroup', "
$(function(){
$('.btn-group a').click(function(){
var fieldId = $(this).data('field');
var value = $(this).data('value');
$('#' + fieldId).val(value);
});
});
", CClientScript::POS_END);
我唯一不明白JavaScript的部分是,它插入視圖時,如上所述,但如果包含在一些外部.js文件不起作用。我認爲它與POS_END有關,但我不是JavaScript專家。
THX很多!我剛剛回顧了你的回答,因爲我在上個月沒有時間了。無論如何,我發現它非常鼓舞人心。我只是做了一些修改,使其完全符合我的意願。 我會在另一個答案中發佈我的結果代碼。 – gooy 2013-04-03 15:30:20