Зависимый раскрывающийся список с использованием сценария Java работает только при изменении основного раскрывающегося списка. Он должен работать при загрузке страницы, если основной выбранный раскрывающийся список уже выбран - PullRequest
0 голосов
/ 29 сентября 2018

У меня есть один основной раскрывающийся список ( Страна ) и второй зависимый dropdown.( Государство ).Этот код работает нормально только тогда, когда мы выбираем основной dropdown.но не работает, если основной раскрывающийся список уже выбран при загрузке страницы.

Основной раскрывающийся список Страна:

<select class="select4" name="country" id="country">
  <option value="">Please Select</option>
     @foreach($country_data as $country)
       <option value="{{$country->country_id}}" {{$profile_data->country == $country->country_id  ? 'selected' : ''}}>{{$country->country_name}}</option>
     @endforeach
</select>

Состояние зависимого раскрывающегося списка:

<select class="select4" name="state" id="state">
  <option value="">Please Select</option>
      @foreach($state_data as $state)
         <option value="{{$state->state_id}}" {{$profile_data->state == $state->state_id  ? 'selected' : ''}}>{{$state->state_name}}</option>
      @endforeach
</select>

Код Java Script для заполнения зависимогоdropdown.

<script type="text/javascript">
 $(document).ready(function() {
   $('select[name="country"]').on('change', function() {
     var countryID = $(this).val();
        if(countryID) {
            $.ajax({
                url: 'family/state/'+countryID,
                type: "GET",
                dataType: "json",
                success:function(data) {
                    $('select[name="state"]').empty();
                    $.each(data, function(key, value) {
                        $('select[name="state"]').append('<option value="'+ value.state_id +'">'+ value.state_name +'</option>');
                    });

                }
            });
        }else{
            $('select[name="state"]').empty();
        }
    });
});

Как код Ajax должен работать и при загрузке страницы?

1 Ответ

0 голосов
/ 29 сентября 2018

Вам нужно будет вручную инициировать событие изменения.

После вашего:

$('select[name="country"]').on('change', function() { ... }

Принудительное срабатывание:

$('select[name="country"]').trigger('change');

Таким образом, когда вашФункция document.ready готовится к завершению, вы можете принудительно вызвать событие и, если оно установлено, оно сработает при вызове ajax

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...