@rusline

Как сделать скрытым список, когда выбирают 0 value?

Не могу понять как сделать так чтобы когда значение пропадает, то список должен стать снова неактивным, как активный я догадался, а вот если val ничему не равно то он становится активным. Есть вариант и на github если этот пример примерно не понятнее https://github.com/rusline18/pergrowthnew.git
в siteController
public function actionRegion()
    {
        $region = Region::getRegion();
        foreach ($region as $regionList) {
            echo "<option value = '".$regionList->region_id."'>".$regionList->name."</option>";
        }
    }

    public function actionCity($id)
    {
       $region = City::find()->where(['region_id'=>$id])->count();
       $cityList = City::find()->where(['region_id'=>$id])->all();

       if ($region>0) {
           foreach ($cityList as $city) {
               echo "<option value = '".$city->city_id."'>".$city->name."</option>";
           }
       } echo "<option>Выберите регион</option>";
    }


в файле signup
<?php $my_array = ArrayHelper::map(Region::find()->where(['country_id'=>3159])->all(),'region_id', 'name') ?>
                <?= $form->field($model, 'region')->dropDownList(
                    $my_array,
                    [
                    'prompt'=> 'Выберите регион',
                    'onchange'=>'
                        $.post("index.php?r=site/city&id='.'"+$(this).val(), function(data){
                            $("select#signupform-city").html(data);
                        });'
                    ]); ?>

                <?= $form->field($model, 'city')->dropDownList(
                    ArrayHelper::map(City::find()->all(), 'city_id', 'name'),
                    [
                    'prompt'=>'Выберите город',
                    'disabled'=>'disabled'
                    ]); ?>

И в jquery, где реализовано, что когда что-то выбирается из списка, то становится активным список город index.js
$('#signupform-region').change(function(){
	$('#signupform-city').prop('disabled',false);
});
  • Вопрос задан
  • 141 просмотр
Решения вопроса 1
@masterfreelance
программист со стажем
При выборе "пустого" значения наверное возвращается 0 options.
Сделайте проверку $("select[id=signupform-city] option").size(); Если 0 оставляйте disabled
$('#signupform-region').change(function(){
  if ($("select[id=signupform-city] option").size() != 0) {
    $('#signupform-city').prop('disabled',false);
  } else {
    $('#signupform-city').prop('disabled','disabled');
  } 
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы