2017-03-02 7 views
4

2つのTimePickerウィジェットを含むモーダルウィンドウを起動するページがあります。最初のモーダルを開くと、すべてが機能します。それも再開することができます。別のモーダルを開くときしかし、私は、コンソールのエラーが表示されます。ここではYii2 Kartik TimePicker - 複数のモーダルウィンドウで使用できない

Uncaught TypeError: Cannot read property 'apply' of undefined 
at HTMLInputElement.eval (eval at globalEval (jquery.js:343), <anonymous>:851:29) 
at Function.each (jquery.js:365) 
at jQuery.fn.init.each (jquery.js:137) 
at jQuery.fn.init.$.fn.timepicker (eval at globalEval (jquery.js:343), <anonymous>:841:21) 
at HTMLDocument.eval (eval at globalEval (jquery.js:343), <anonymous>:3:107) 
at fire (jquery.js:3187) 
at Object.add [as done] (jquery.js:3246) 
at jQuery.fn.init.jQuery.fn.ready (jquery.js:3496) 
at eval (eval at globalEval (jquery.js:343), <anonymous>:1:18) 
at eval (<anonymous>) 

は、エラーの原因となったコードです:ここでは

//TIMEPICKER PLUGIN DEFINITION 
$.fn.timepicker = function (option) { 
    var args = Array.apply(null, arguments); 
    args.shift(); 
    return this.each(function() { 
     var $this = $(this), 
      data = $this.data('timepicker'), 
      options = typeof option === 'object' && option; 

     if (!data) { 
      $this.data('timepicker', (data = new Timepicker(this, $.extend({}, $.fn.timepicker.defaults, options, $(this).data())))); 
     } 

     if (typeof option === 'string') { 
      data[option].apply(data, args); // This is the line that causes problems 
     } 
    }); 
}; 

は、ウィジェットのためのPHPコードです:

<?= $form->field($model, 'TimeEntryStartTime',[ 
       'showLabels'=>false 
       ])->widget(TimePicker::classname(),[ 
        'options' => ['placeholder' => 'Enter time...'], 
       ]); ?> 

ここにはモーダルを起動するjavascriptがあります(それぞれに似ています):

// Modal view for Monday 
$('#modalButtonMonday').click(function(){ 
// get the click of the create button 
    $('#modalMonday').modal('show') 
     .find('#modalContentMonday') 
     .load($(this).attr('value')); 
});  
$('#modalMonday').on('hidden.bs.modal', function (e) { 
    // reload page when modal closed 
    location.reload(true); 
}); 
+0

console.log(data [option])の内容は何ですか? – bxN5

+0

未定義です。 –

+0

スクリプトはデータを得ることができません魔女の行で見つけるためにダンプを続ける必要があります、あなたは両方のモーダルのためのIDまたはクラスが正常であれば問題が現れることがあります – bxN5

答えて

0

EX、

'name'=>timepickerName;

か「オプション」htmlの配列内の各1のIDやクラスを挿入すると、ウィジェットに異なる名前を設定してみてください。 'id'=>'timepickerId'

.fn。対応者またはidです。

関連する問題