不要仅仅为了具有当前值而指定属性——这违背了下拉菜单的目的。
要获取下拉列表的当前值,请在您的 jquery 中使用 jQuery 的 val: http://api.jquery.com/val/,例如:
$("#DropDownID").val()
编辑:您真正的问题似乎是如何在更改下拉列表后更新内容,具体取决于下拉列表的值。这将通过 AJAX 完成。Yii 为此提供了一个特殊的AJAX数组,例如:
$form->dropDownList($model,
'condition',
$model->getConditionOptions(),
array('submit'=>array('theme/build',
'id'=>$model->id,
'ajax'=>array('url'=>CController::createURL('controller/action'),
'data'=>'$("#' . $model->id . '")',
'update'=>'#otherID', //selector to update
)
)
)
);
然后,在您的控制器端,您可以使用getParam获取值。请注意,您要更新的任何内容都应回显,而不是使用渲染。
编辑 2:如果您不想使用 jQuery,而只是重新加载整个页面,您应该只提交表单,例如:
$form->dropDownList($model, 'condition', $model->getConditionOptions(), array('submit'=>CController::createURL('controller/action')))
然后在您的控制器中,您仍然会使用 getParam 并呈现一个新页面。