加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – Yii2 Kartik TimePicker – 不能在多个模态窗口中使用

发布时间:2020-12-13 22:27:44 所属栏目:PHP教程 来源:网络整理
导读:我有一个页面启动包含两个TimePicker小部件的模态窗口.打开第一个模态时,一切正常.它也可以重新打开.但是,当打开另一个模态时,我收到一个控制台错误: Uncaught TypeError: Cannot read property 'apply' of undefinedat HTMLInputElement.eval (eval at glo
我有一个页面启动包含两个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);
});

解决方法

尝试在小部件中设置不同的名称

‘名称’=> timepickerName;

或者在’option’html数组中为每一个插入一个id或类,例如.的 ‘id’=> ‘timepickerId’

并写另一个.fn.与通讯员姓名或身份证明.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读