javascript - wbraganca yii2 动态表单日期选择器问题?

标签 javascript yii2 uidatepicker yii2-advanced-app dynamicform

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

<?= $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); ?>

之前我面临一个问题,那就是日期选择器仅打开第一个表单,如果用户单击添加按钮意味着该表单将出现但日期选择器不会出现,所以我添加一个自定义脚本,如下所示

$(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
      });
    });          
});

});

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

最佳答案

使用afterDelete并重新初始化日期选择器:

$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
           });
      });          
    });
});
');

need to remove hasDatepicker 重新初始化日期选择器。

关于javascript - wbraganca yii2 动态表单日期选择器问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40651844/

相关文章:

javascript - 选择输入时启用/禁用某些复选框 ="radio"

php - 如何在 Yii2REST 网络服务的 GET 请求中使用 IN 运算符

php - Yii2 在 Controller 中使用模型中的方法(REST API)

ios - inputAccessoryView 无法正常工作或格式化

ios - 在 IOS 中设置日期选择器以仅选择月份和年份

javascript - Google Analytics - 保持页面活跃

javascript - 当 Meteor 检查失败时指定已清理的错误

javascript - 将字符串转换为数组的方法

arrays - Yii 2,排序数组,ArrayHelper

ios - DatePicker - 如何用三个字符而不是数字显示日期月份名称