2017-10-19 13 views
-1

私は2つのselect要素と1つのcheckboxを持っています。私が到達しようとしているのは、最初のものからのコンティリー(アルバニアは言うことができます)を選択し、checkboxを押すと、このオプションは2番目のselectにロードされます。私はkartiv Select2 widgetを使用していて、何とかちょうどそれを得ることができませんどのように私はそれを作る必要があります。 この私の最初の選択:残りの要素のためのYii2 Select2 kartik-vチェックボックスの変更で選択値を与える

<?php 
         $mas[0] = Yii::t('app', 'Главна страница'); 
         $mas['----------------'] = ArrayHelper::map(Country::find()->all(), 'id', 'name'); 
         ?> 
         <?= 
         $form->field($model, 'address_country_id')->widget(Select2::classname(), [ 
          'model' => $model, 
          'attribute' => 'address_country_id', 
          'data' => $mas, 
          'options' => [ 
           'placeholder' => Yii::t('app', 'Избери държава'), 
           'class' => 'register-select', 
          ], 
          'pluginOptions' => [ 
           'allowClear' => true 
          ], 

         ])->label(false); 
         ?> 

とJS:

<?php 
          $mas[33] = Yii::t('app', 'Bulgaria'); 
          $mas['----------------'] = ArrayHelper::map(Country::find()->all(), 'id', 'name'); 
          ?> 
          <?= 
          $form->field($model, 'country_id')->widget(Select2::classname(), [ 
           'model' => $model, 
           'attribute' => 'country_id', 
           'data' => $mas, 
           'options' => [ 
            'placeholder' => Yii::t('app', 'Избери държава'), 
            'class' => 'register-select', 
           ], 
           'pluginOptions' => [ 
            'allowClear' => true 
           ], 

          ])->label(false); 
          ?> 

2つ目を。彼らは単純な入力ですので、私はそれらをうんざりすることはありません。

JS:

$(function() { 
     $('#fill_address').on('change', function() { 

      var country = $("input[name='register-form[country_id]']");//This is the first select 
      var city = $("input[name='register-form[city]']"); 
      var address = $("input[name='register-form[delivery_address]']"); 
      var post_code = $("input[name='register-form[post_code]']"); 

      var country_delivery = $("input[name='register-form[address_country_id]']");//This is the second select which i should give the value from the first one 
      var city_delivery = $("input[name='register-form[address_city]']"); 
      var address_delivery = $("input[name='register-form[address_address]']"); 
      var postcode_delivery = $("input[name='register-form[address_post_code]']"); 

      if($(this).is(":checked")){ 
       city_delivery.val(city.val()); 
       address_delivery.val(address.val()); 
       postcode_delivery.val(post_code.val()); 
       return false; 
      } 

      city_delivery.val(''); 
      address_delivery.val(''); 
      postcode_delivery.val(''); 
      return false; 
     }) 
    }) 

事前にありがとうございます! (チェックボックスがチェックされたときのイベントに)

答えて

0

あなたが最初SELECT2フィールドから2番目のフィールドに国を追加したいと仮定すると、あなたはこれを行うことができます。

country_delivery.append('<option value="' + country.val() + '">' + country.text() + '</option>'); 
関連する問題