Yii2:设置下拉列表中选择项时文本字段的值

rryofs0p  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(179)

我的表单上有下列程式码:

<?php
     $unitPrices = ArrayHelper::map(Item::find()->where('isApproved and 
     vendor_id=:id', [':id' => $vendorId])->all(),'id','unitPrice'); 
    ?>
  • 这会给我一个名为unitPrices的Map,其中的键值对是id-unitPrice
<?= $form->field($model, 'item_id')->dropDownList(
ArrayHelper::map(Item::find()->where('isApproved and vendor_id=:id', [':id' => $vendorId])->all(),'id','itemCode','description'), 

    [   

        'prompt'=>'--Select Item--',

        'id'=>'item_selected',

        'onchange' => '$("#priceOnLine").val($unitPrices[item_id_value]);',
    ])

?>
  • 我想做的是,当从下拉列表中选择一个项目时,它还使用unitPricesMap设置名为priceOnLine的文本字段的值,其中id是从下拉列表中选择的项目的值。
  • 我尝试将文本字段设置为静态值(100),它可以工作,但我不知道如何使用Map设置它。
'onchange' => '$("#priceOnLine").val(100);',

提前感谢您的帮助:D

bz4sfanl

bz4sfanl1#

您需要获取所选选项的文本,您可以在视图顶部添加以下脚本,并从dropDown()中删除'onchange' => '$("#priceOnLine").val($unitPrices[item_id_value]);',

<?php 

$js=<<<JS
    $("#item_selected").on("change",function(){
       $("#priceOnLine").val(($(this).find("option:selected").text()));
    });
JS;

$this->registerJs($js,\yii\web\View::POS_READY);

希望能有所帮助

相关问题