wbraganca yii2 动态表单日期选择器问题? [英] wbraganca yii2 dynamic form date picker issue?

查看:28
本文介绍了wbraganca yii2 动态表单日期选择器问题?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用 wbraganca 动态表单.在我的表单中,一个字段需要日期选择器,所以我使用如下所示的 jui 日期选择器

I am using wbraganca dynamic form. In my form one field need date picker,so i use jui date picker like below

<?= $form->field($model, "[{$i}]DOB")->widget(DatePicker::classname(), [
                         'language' => 'en',
                         'options' => ['class'=>'cust-form-control dob','placeholder'=>'Date of birth','autocomplete'=>'off','readOnly'=>true,'aria-label' => 'Date of Birth'],
                          'clientOptions'=>[
                            'changeMonth'=>true,
                            'changeYear'=> true,
                            'yearRange'=> "1925:+0",
                            'dateFormat' => 'dd/mm/yy',
                            'maxDate' => "-1D",
                          ],
                    ])->label(false); ?>

之前我遇到一个问题,即日期选择器只打开第一个表单,如果用户点击添加按钮意味着表单将出现但日期选择器不会出现,所以我添加了一个如下所示的自定义脚本

Earlier i am face one problem, that is the date picker open only first form, if user click add button means the form will appear but datepicker does not appear, so i am add one custom script like below

$(function () {
$(".dynamicform_wrapper").on("afterInsert", function(e, item) {
     $( ".dob" ).each(function() {
        $( this ).datepicker({
        dateFormat : 'dd/mm/yy',
        yearRange : '1925:+0',
        maxDate : '-1D',
        language : 'en',
        changeMonth: true,
        changeYear: true
      });
    });          
});

});

所以日期选择器正确打开所有表单,我打开多个表单并一一选择日期选择器意味着它工作正常.但问题是例如,首先我打开两个表单并关闭第一个表单,现在第二个表单在那个时候出现日期选择器,但它不可点击.

So date picker open all forms correctly and i am open multiple form and choose date picker one by one means it is working fine. But problem is for example, First i am open two forms and close first form, now the second form come first at that time date picker will appear but it is not clickable.

推荐答案

使用 afterDelete 并重新初始化 datepicker :

Use afterDelete and reinitialize datepicker :

$this->registerJs(' 
$(function () {
    $(".dynamicform_wrapper").on("afterInsert", function(e, item) {
        $( ".dob" ).each(function() {
           $( this ).datepicker({
              dateFormat : "dd/mm/yy",
              yearRange : "1925:+0",
              maxDate : "-1D",
              changeMonth: true,
              changeYear: true
           });
      });          
    });
});
$(function () {
    $(".dynamicform_wrapper").on("afterDelete", function(e, item) {
        $( ".dob" ).each(function() {
           $( this ).removeClass("hasDatepicker").datepicker({
              dateFormat : "dd/mm/yy",
              yearRange : "1925:+0",
              maxDate : "-1D",
              changeMonth: true,
              changeYear: true
           });
      });          
    });
});
');

需要删除hasDatepicker 重新初始化日期选择器.

You need to remove class hasDatepicker to reinitialize datepicker.

这篇关于wbraganca yii2 动态表单日期选择器问题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆