2017-02-16 3 views
1

DateRangePicker 위젯을 2 곳에 배치했습니다. 첫 번째는 버튼을 클릭하여 열리는 부트 스트랩 모달 창에 있습니다. 그리고 두 번째 것은 모달 창없이 페이지에 표시하고 싶습니다. 결과는 모달 창에서 제대로 작동하지만 페이지에있는 두 번째는 올바르게 작동하지 않습니다. 즉, 모양이 정확하고 표시되지만 필드를 클릭하면 일정이 표시되지 않습니다.Yii2 + 2amigos DateRangePicker 모듈. 올바르게 작동하지 않습니다.

모달의 코드는 다음과 같습니다

<div class="modal fade" id="responsive" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> 
    <div class="modal-dialog"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> 
       <h4 class="modal-title" id="myModalLabel4">Book</h4> 
      </div> 
      <div class="modal-body"> 
       <?php $form = ActiveForm::begin(); ?> 
        ... 
        <?= $form->field($model, 'start_date')->widget(DateRangePicker::className(), [ 
         'attributeTo' => 'end_date', 
         'language' => 'ru', 
         'labelTo' => 'до', 
        // 'size' => 'lg', 
         'clientOptions' => [ 
          'autoclose' => true, 
          'format' => 'yyyy-mm-d', 
          'todayHighlight' => true, 
         ] 
        ])->label('Укажите период');?>       
        ... 
       <?php ActiveForm::end(); ?> 
      </div> 
     </div> 
    </div> 
</div> 

그리고 페이지에 DIV :

<div> 
    <?php $form = ActiveForm::begin(); ?> 
     ... 
     <?= $form->field($model, 'start_date')->widget(DateRangePicker::className(), [ 
      'attributeTo' => 'end_date', 
      'language' => 'ru', 
      'labelTo' => 'до', 
     // 'size' => 'lg', 
      'clientOptions' => [ 
       'autoclose' => true, 
       'format' => 'yyyy-mm-d', 
       'todayHighlight' => true, 
      ] 
     ])->label('Укажите период');?>       
     ... 
    <?php ActiveForm::end(); ?> 
</div> 

P.S. DatePicker 위젯을 사용하면 같은 문제가 발생합니다. 그리고 한 번 더 모달을 추가했습니다. 모달도 추가되었습니다. 첫 번째 모달에서만 나타납니다.

한 번 더 : 모델없이 간단한 DatePicker 위젯을 추가하려고했습니다.

<?= DatePicker::widget([ 
'name' => 'Test', 
'value' => '02-16-2012', 
'template' => '{addon}{input}', 
    'clientOptions' => [ 
     'autoclose' => true, 
     'format' => 'dd-M-yyyy' 
    ] 
]);?> 

이 위젯을 모델에 추가 할 때 문제가 있습니다.

+0

브라우저 콘솔에서 오류가 발생했는지 확인하십시오. –

+0

콘솔에 오류가 없습니다 –

답변

0

두 위젯에 동일한 모델 속성을 사용했기 때문에 문제가 발생한다고 생각합니다. 따라서 한 페이지에는 동일한 idname 속성을 갖는 두 개의 입력이 있습니다. 이 경우 JS 라이브러리가이를 처리 할 수 ​​없습니다. 두 번째 위젯에 다른 속성 이름을 사용하십시오. 도움이 될 수 있습니다.

추신 : 확실하지 않지만 두 번째 위젯 (아마도 clientOptions 사용)에 대해 다른 idname을 정의하는 방법이있을 수 있습니다. JS 라이브러리와 버전에 따라 다릅니다.

+0

감사합니다! 당신 말이 맞아요. 그것은 'options'와 'optionsTo'를 사용하여 정의됩니다. –

관련 문제