下拉列表验证不起作用

时间:2015-06-24 07:56:27

标签: php ajax yii2

这是我的下拉列表

 <?php

    $dataCategory=ArrayHelper::map(Movies::find()->asArray()->all(),
 'id', 'movie_name');

  echo $form->field($model, 'movie_id')->dropDownList($dataCategory, 
             ['prompt'=>'-Choose a Movie-','onchange'=>'
             $.get( "'.Url::toRoute('screenticketbooking/dependdrop').'", 
             { id: $(this).val() } )
            .done(function( data )
             {
             $( "select#title" ).html( data );
             });
             '])->label(''); 

    ?> 


      <?php 

            $dataPost=ArrayHelper::map(MovieShows::find()->where('movie_id=:
mov_id',['mov_id'=>$model->movie_id])->asArray()->all(), 'id', 'start_date'); 

    echo $form->field($model, 'show_date')
    ->dropDownList($dataPost, 
    ['id'=>'title','prompt'=>'-Select a Date-']
    )->label('');   

    ?>  

我的模型规则

  public function rules()
        {
            return [
                [['booking_id', 'location_id', 'movie_id', 'theatre_id', 'screen_id', 'show_time_id', 'screen_class_id', 'seat_id', 'show_date', 'is_deleted'], 'required'],
                [['booking_id', 'location_id', 'movie_id', 'theatre_id', 'screen_id', 'show_time_id', 'screen_class_id', 'seat_id', 'created_by', 'updated_by', 'is_deleted'], 'integer'],
                [['show_date', 'created_at', 'updated_at'], 'safe'],
            ];
        }

我已根据模型的要求设置show_datemovie_id,但验证不适用于“show_date”(即使未设置,也会转到其他页面点击确定)

如何在第二次下拉中验证字段???

2 个答案:

答案 0 :(得分:0)

我想这就是问题所在:

$( "select#title" ).html( data );

您可以将其更改为:

$( "select#title" ).val( data );

但这取决于数据是什么。你可以看看here

答案 1 :(得分:0)

你试试这个

$( "#<?php echo Html::getInputId($model, 'show_date');?>" ).html( data );

而不是

$( "select#title" ).html( data );

下面的代码获取HTML元素的动态ID。同时删除您的自定义ID,即&{39; "id"=>"title"&#39;从第二次下拉。

<?php echo Html::getInputId($model, 'show_date');?> 

例如:

<?php echo $form->field($model,'stu_padd_state')->dropDownList($stateList,
        [
            'prompt'=>'---Select State---',
            'onchange'=>'
                $.get( "'.Url::toRoute('dependent/astud_p_city').'", { id: $(this).val() } )
                    .done(function( data ) {
                        $( "#'.Html::getInputId($model, 'stu_padd_city').'" ).html( data );
                    }
                );'    
        ]       
            ); 
    ?>

<?php echo $form->field($model,'stu_padd_city')->dropDownList($cityList, ['prompt'=>'---Select City---']);?>