基本上,我想知道如何将原始下拉列表值复制到隐藏的下拉列表中。
因为目前我有一个禁用某个下拉值的单选按钮,但该值不会在PHP中进行POST。因此,我在隐藏字段中添加了原始下拉菜单的同名,但是当重新启用时,该字段不会复制其值。
这就是我所拥有的:
<div class="row">
<?php echo $form->labelEx($model,'clientPackagedService_id'); ?>
<?php $client = Client::model()->findByPk(1);?>
<?php echo $form->dropDownList($model, 'clientPackagedService_id', CHtml::listData($client->clientPackagedservices(array('condition'=>'client_id='.$client->id.' AND booking_id IS NULL')),'id','packagedServiceInfo')
,array(
'disabled'=>'disabled',
'prompt'=>'Select Packaged Service....',
'ajax' => array( 'type'=>'POST', //request type
'url'=>CController::createUrl('updateMasseuseAndStationListPSID'), //url to call.
'data'=>array('clientPackagedService_id'=>'js:this.value', 'dt'=>'js:$("#Booking_date").val()', 'timeStart'=>'js:$("#Booking_timeStart").val()'),
'dataType'=>'json',
'success'=>'js:function(data) {
var mass="#'.CHtml::activeId($model, 'masseuse_id').'";
$(mass).html(data.masseuse);
$(mass).trigger("chosen:updated");
$(mass+"_chzn").css("width","300px");
$(mass+"_chzn > .chzn-drop").css("width","298px");
var station="#'.CHtml::activeId($model, 'station_id').'";
$(station).html(data.station);
$(station).trigger("chosen:updated");
$(station+"_chzn").css("width","300px");
$(station+"_chzn > .chzn-drop").css("width","298px");
//alert(data.timeEnd);
var timeEnd="#'.CHtml::activeId($model, 'timeEnd').'";
$(timeEnd).val(data.timeEnd);
}',
)
)
); ?>
<?php echo $form->error($model,'clientPackagedService_id'); ?>
</div><!-- row -->
<div>
<?php echo $form->hiddenField($model, 'clientPackagedService_id'); ?>
</div>
这是我的javascript
$(document).ready(function(){
$('input[type=radio]').change(function(){
if(this.value == '0'){
$("#Booking_clientPackagedService_id").prop("disabled", false);
$("#Booking_service_id").prop("disabled", true);
$("#Booking_service_id").val('0');
//I believe there's something I need to add in this line
}
else if(this.value == '1'){
$("#Booking_service_id").prop("disabled", false);
$("#Booking_clientPackagedService_id").prop("disabled", true);
$("#Booking_clientPackagedService_id").val('0');
}
});
})
我是否将hiddenField与我原来的下拉列表相同或者不应该?如果是,那么当重新启用时,如何将原始下拉列表的值复制到hiddenField中?
答案 0 :(得分:0)
您始终可以检查是否正在发布该值,如果是,则执行所需的功能。否则,不要理会。在我的情况下,我有一个需要该值的函数。所以,我在actionCreate()中添加了一个检查;
这是我的代码:
.
感谢@Masiorama的评论。如果他没有评论,我就不会得到它。