使用jQuery克隆的Yii日期选择器不工作

使用jQuery克隆的Yii日期选择器不工作,jquery,yii,datepicker,Jquery,Yii,Datepicker,背景: <div class="clone"> <?php $this->widget( 'zii.widgets.jui.CJuiDatePicker', array( 'model'=>$model, 'attribute'=>'Date',

背景:

   <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>
$('.clone').clone().append().insertAfter('.clone')
我正在使用PHP和Javascript库jQuery。我有一个用Yii创建的表单,其中包括一个datapicker输入元素。我正在使用jQuery克隆
datepicker
输入

问题:

   <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>
$('.clone').clone().append().insertAfter('.clone')
我遇到的问题是新克隆的
日期选择器不工作

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>
$('.clone').clone().append().insertAfter('.clone')

我非常感谢您的帮助或指导,谢谢您。您已将
date
类指定给日期选择器,并使用
clone
类选择它。我认为问题在于它。尝试将
$('.clone').clone().append().insertAfter('.clone')
替换为
$('.date').clone().append().insertAfter('.date')
您需要重新初始化新元素的日期选择器
$('.clone').datepicker()
和您的选项

无法使用绑定事件克隆datepicker,因为如果这样做,它们将指向原始datepicker元素。相反,在没有任何事件的情况下克隆datepicker,从克隆的元素中删除类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();

小提琴示例:

非常感谢您。。。请容忍我这里的新手。。。。。我遵循您的代码,但第二个日期选择器仍然指向我所做的第一个日期选择器。我再次初始化它,如下$('.clone input[name=“Model[Date]”)。datepicker();同样,如果您使用的是较旧版本的jQuery<1.5.0,则需要向clone方法添加false参数以忽略绑定事件,例如:.clone(false)如果这不起作用,则可以尝试使用jQuery.off()或.unbind()从克隆元素及其子元素中删除所有事件方法取决于您的jQuery版本。非常感谢。。。。我添加了.attr(“id”).removeClass('hasDatepicker').removeData('datepicker').unbind().datepicker();现在,它的工作方式看起来需要一个结束的
?>
PHP括号。