Reputation: 91
I'm trying to use onclick on a dropdownlist.
This is my view :
<?= $form->field($model, "contact_gender")->dropDownList(ArrayHelper::map($genders, 'value', 'description'),['class'=>'form-control','prompt'=>'Please Select','onchange'=>'getSalutationValue','required'=>true])->label('Gender') ?>
<?= $form->field($model, "contact_title")->dropDownList(ArrayHelper::map($salutations, 'value', 'description'),['class'=>'form-control Salutation','prompt'=>'Please Select','required'=>true])->label('Salutation') ?>
and this is my function :
<script>
function getSolutationValue() {
var value = (this.value);
if(value == 'Male'){
$('.Salutation').val('0');
}
if(value == 'Female'){
$('.Salutation').val('1');
}
if(value == 'Unspecified'){
$('.Salutation').val('2');
}
}
</script>
What I want is when I select a value from contact_gender,a value is selected automatically in contact_title. Thanks in advance.
p/s : I'm a newbie.
Upvotes: 6
Views: 11146
Reputation: 91
I solved it. The problems are I didn't declare the value and I added on.change twice. Here's the correct code. Thanks for the response.
<?= $form->field($model, "contact_gender")->dropDownList(ArrayHelper::map($genders, 'value', 'description'),['class'=>'form-control gender','prompt'=>'Please Select','required'=>true])->label('Gender') ?>
<?= $form->field($model, "contact_title")->dropDownList(ArrayHelper::map($salutations, 'value', 'description'),['class'=>'form-control Salutation','prompt'=>'Please Select','required'=>true])->label('Salutation') ?>
$this->registerJs('
$(".gender").change(function(){
var value = this.value;
if(value == "MALE"){
$(".Salutation").val("0");
}
if(value == "FEMALE"){
$(".Salutation").val("4");
}
if(value == "UNSPECIFIED"){
$(".Salutation").val("23");
}
});
Upvotes: 3
Reputation: 3818
You should try this code.
$this->registerJs("
$(function(){
$('.gender').change(function(){
getSalutationValue(this.value);
});
function getSalutationValue(value) {
if(value == 'Male'){
$('.Salutation').val('0');
}
if(value == 'Female'){
$('.Salutation').val('1');
}
if(value == 'Unspecified'){
$('.Salutation').val('2');
}
}
});
");
<?= $form->field($model, "contact_gender")->dropDownList(ArrayHelper::map($genders, 'value', 'description'), ['class'=>'form-control gender','prompt'=>'Please Select', 'required'=>true])->label('Gender') ?>
<?= $form->field($model, "contact_title")->dropDownList(ArrayHelper::map($salutations, 'value', 'description'),['class'=>'form-control Salutation','prompt'=>'Please Select','required'=>true])->label('Salutation') ?>
Upvotes: 1