В соответствии с выпадающим значением измените имя метки и значение атрибута в активной форме yii2.

Моя активная форма:

падать

<?php
if($model->userType!="VENDOR" && $model->userType!="COMPANY"){
    echo $form->field($model, 'fixedOrPercentagevendor')->dropDownList([0=>'Percentage',1=>'Amount']);

}
?>

Мне нужно сделать это с помощью onchange,

когда я выбираю Percentage, он должен показывать

<?= $form->field($model, 'vendorcommision')->label('Vendor Fee (%)')->textInput(['type' => 'number','value'=>'20', 'id'=>'percentage']); ?>

когда я выбираю Amount, он должен показывать

<?= $form->field($model, 'vendorcommision')->label('Vendor Fee (LKR)')->textInput(['type' => 'number','value'=>'1000','id'=>'amount']); }?>

Обратите внимание, что оба раскрывающихся списка отображают в модели один и тот же атрибут vendorcommision, а различаются только имена и значения меток.

Заранее спасибо.


person Beginner    schedule 24.01.2018    source источник
comment
Взгляните на расширение Kartik DepDrop.   -  person gmc    schedule 24.01.2018
comment
используйте раскрывающийся список вместо ввода текста, если вы пытаетесь отобразить только один ввод за раз в зависимости от выбора, раскрывающийся список kartik dep может помочь вам, как сказал @gmc   -  person Muhammad Omer Aslam    schedule 24.01.2018
comment
не могу использовать расширение, потому что мои значения должны быть редактируемыми или изменяемыми, это процент и сумма. :(   -  person Beginner    schedule 25.01.2018
comment
ярлыки, которые вы хотите показать при выборе, изначально скрыты? каковы id двух меток?   -  person Muhammad Omer Aslam    schedule 27.01.2018
comment
'percentage' и 'amount' - это два идентификатора. Изначально можно скрыть или показать только 'percentage' id. @MuhammadOmerAslam   -  person Beginner    schedule 29.01.2018


Ответы (1)


Решил мою проблему.

<?php
if($model->userType!="ADMIN" && $model->userType!="HOST"){
    echo $form->field($model, 'fixedOrPercentagevendor')->dropDownList([0=>'Amount',1=>'Percentage'],
            [
                'onchange'=>'if($(this).val() == 1){
                    $("#percentage").val("20");
                    $("#ftype").html("Vendor Fee (%)");
                    }
                    else{
                    $("#percentage").val("1000");
                    $("#ftype").html("Vendor Fee (LKR)");}'
            ]);

    echo $form->field($model, 'vendorcommision',['template'=>"{label}\n<div>{input}</div>\n{hint}\n{error}",'labelOptions'=>['label'=>'Vendor Fee','id'=>'ftype']])
            ->textInput(['type' => 'number','id' => 'percentage']);
}
?>
person Beginner    schedule 07.03.2018