我正在使用wbraganca动态表单。我面临的问题是,datepicker适用于第一行动态表单。但在其余的行上它不起作用。我已经尝试了几乎所有可能的解决方案,但它们都没有为我工作。
我对代码所做的第一个改动是通过替换下面的代码在yii2-dynamic-form.js中进行更改
// "kartik-v/yii2-widget-datepicker"
var $hasDatepicker = $(widgetOptionsRoot.widgetItem).find('[data-krajee-datepicker]');
var $hasDatepicker = $(widgetOptionsRoot.widgetItem).find('[data-krajee-datepicker]');
if ($hasDatepicker.length > 0) {
$hasDatepicker.each(function() {
$(this).parent().removeData().datepicker('remove');
$(this).parent().datepicker(eval($(this).attr('data-krajee-datepicker')));
});
}
用这个
// "kartik-v/yii2-widget-datepicker"
var $hasDatepicker = $(widgetOptionsRoot.widgetItem).find('[data-krajee-kvdatepicker]');
if ($hasDatepicker.length > 0) {
$hasDatepicker.each(function() {
$(this).parent().removeData().kvDatepicker('remove');
$(this).parent().kvDatepicker(eval($(this).attr('data-krajee-kvdatepicker')));
});
}
现在它在控制台中显示错误,如下所示
Uncaught TypeError: Cannot read property 'deprecated' of undefined
at Datepicker.remove (bootstrap-datepicker.js:33)
at HTMLDivElement.<anonymous> (bootstrap-datepicker.js:1649)
at Function.each (jquery.js:365)
at jQuery.fn.init.each (jquery.js:137)
at jQuery.fn.init.datepickerPlugin [as kvDatepicker] (bootstrap-datepicker.js:1626)
at HTMLInputElement.<anonymous> (yii2-dynamic-form.js:316)
at Function.each (jquery.js:365)
at jQuery.fn.init.each (jquery.js:137)
at _restoreSpecialJs (yii2-dynamic-form.js:315)
at _addItem (yii2-dynamic-form.js:116)
提前致谢。
答案 0 :(得分:1)
实际上,我费了好几个小时才终于想出一个简单的解决方案,有时候从您的经验中找出一个解决方案比寻找几个小时要好。
我所做的与您相同,但是随后我做了简单的修改
public void tearDown() {
// here goes other code to be executed after each test case
getActivity().finish();
}
Jus捕获了具有.krajee-datepicker类的输入,并使用KvDatepicker对其进行了初始化,将您创建的第一个datepicker元素的选项加载到该输入中。
对我有用。告诉我是否可行
答案 1 :(得分:-1)
我正在许多嵌入式动态表单上处理此问题,并且该问题已通过以下方式解决:
1。-转到文件夹frontend / web / assets或backend / web / assets并删除其中的所有文件(缓存文件),. gitignore除外(如果使用的是git
)2。-转到vendor / wbraganca / yii2-dynamicform.js并注释段落块
// "kartik-v/yii2-widget-datepicker"
/*
var $hasDatepicker = $(widgetOptionsRoot.widgetItem).find('[data-krajee-datepicker]');
if ($hasDatepicker.length > 0) {
$hasDatepicker.each(function() {
$(this).parent().removeData().datepicker('remove');
$(this).parent().datepicker(eval($(this).attr('data-krajee-datepicker')));
});
}
*/
3.-在其中粘贴下一个代码
// "kartik-v/yii2-widget-datepicker"
var $hasDatepicker = $(widgetOptionsRoot.widgetItem).find('[data-krajee-kvdatepicker]');
if ($hasDatepicker.length > 0) {
$hasDatepicker.each(function () {
console.log("Clonado2....");
$(this).parent().removeData().off();
//$(this).parent().removeData().kvDatepicker('remove');
$(this).parent().kvDatepicker(eval($(this).attr('data-krajee-kvdatepicker')));
//$(this).parent().find('.krajee-datepicker').kvDatepicker(eval($(this).attr('data-krajee-kvdatepicker')));
});
}
4.-享受; D