2016-04-20 11 views
6

मैं ड्रॉपडाउन सूची पर क्लिक करने का प्रयास कर रहा हूं।Yii2 Jquery onchange ड्रॉपडाउन

यह मेरे विचार है:

<?= $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') ?> 

और यह मेरा समारोह है:

<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> 

क्या मैं चाहता हूँ जब मैं contact_gender से एक मूल्य का चयन है, एक मूल्य के CONTACT_TITLE में स्वचालित रूप से चयन किया जाता है। अग्रिम धन्यवाद।

पी/एस: मैं एक नौसिखिया हूँ।

+2

यदि आपने जो प्रदान किया है वह वह कोड है जिसका उपयोग आप फ़ंक्शन नामों का उपयोग कर रहे हैं। 'onchange' 'getalizationValue' प्राप्त होता है जबकि फ़ंक्शन 'getSolutationValue' मिलता है। – Alex

उत्तर

3

मैंने इसे हल किया। समस्याएं हैं कि मैंने मूल्य घोषित नहीं किया है और मैंने जोड़ा है। दो बार बदलें। सही कोड यहाँ है। जवाब के लिए धन्यवाद।

<?= $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"); 
} 
}); 
1

आपको यह कोड आज़माएं।

$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') ?> 
+0

आपके उत्तर के लिए धन्यवाद। लेकिन मुझे यह त्रुटि मिली "Uncaught ReferenceError: getSalutationValue परिभाषित नहीं किया गया है" और कुछ भी नहीं हुआ। –

+1

आपके पास ड्रॉपडाउन सूची के विकल्प के रूप में 'ऑनचेंज' => 'getSalutationValue' है, इसलिए इसे हटा दें। – GAMITG