【问题标题】:Yii Datepicker Cloned with jQuery Not Working使用 jQuery 克隆的 Yii Datepicker 不工作
【发布时间】:2015-04-18 10:00:08
【问题描述】:

背景:

我正在使用 PHP Yii Framework 和 Javascript 库 jQuery。我有一个用 Yii 创建的表单,其中包括一个数据选择器输入元素。我正在使用 jQuery 克隆 datepicker 输入。

问题:

我遇到的问题是新克隆的datepicker 不起作用。

HTML/PHP:

   <div class="clone">
       <?php 
           $this->widget(
               'zii.widgets.jui.CJuiDatePicker',
               array(
                   'model'=>$model,
                   'attribute'=>'Date',
                   'value'=>$model->date,
                   'options'=>array(
                   'changeMonth'=>true,
                   'changeYear'=>true,
                   'showButtonPanel'=>true,
                   'autoSize'=>true,
                   'dateFormat'=>'yy-mm-dd',
                   'defaultDate'=>$model->date,
               ),
               'htmlOptions'=>array(
                   'class'=>'date'
               ),
           ));
    </div>

jQuery:

$('.clone').clone().append().insertAfter('.clone')

非常感谢任何帮助或指导,提前谢谢您。

【问题讨论】:

  • 看起来你需要一个结束 ?&gt; PHP 括号。

标签: jquery yii datepicker


【解决方案1】:

日期选择器不能被绑定事件克隆,因为如果这样做,它们将指向原始日期选择器元素。而是在没有任何事件的情况下克隆 datepicker,从克隆的元素中删除 class hasDatepicker 并初始化 datepicker。

// Cloning the original element
$clonedElement = $('.clone').clone().insertAfter('.clone');
// For some reason class hasDatepicker must be removed before init, otherwise it wont work
$clonedElement.find('input[name="Model[Date]"]').removeClass('hasDatepicker').datepicker();

小提琴示例:https://jsfiddle.net/b65p24a6/

【讨论】:

  • 非常感谢...新手请多多包涵... '.clone input[name="Model[Date]"]').datepicker();还是一样
  • 如果您使用的是旧版本的 jQuery
  • 如果这不起作用,您可以尝试使用 jQuery .off() 或 .unbind() 方法从克隆元素及其子元素中删除所有事件,具体取决于您的 jQuery 版本。
  • 非常感谢....我添加了 .attr("id", "") .removeClass('hasDatepicker') .removeData('datepicker') .unbind() .datepicker();现在它的工作
【解决方案2】:

您已将date 类分配给您的日期选择器,并使用clone 类选择它。我认为问题是它。尝试用$('.date').clone().append().insertAfter('.date')替换$('.clone').clone().append().insertAfter('.clone')

【讨论】:

    【解决方案3】:

    您需要为新元素重新初始化日期选择器 $('.clone').datepicker() 有你的选择

    【讨论】:

      猜你喜欢
      • 2013-10-28
      • 2012-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-08
      • 2012-09-22
      • 2016-04-19
      相关资源
      最近更新 更多