Yii2通过jquery将datepicker初始化为动态附加文本字段

时间:2018-03-02 05:41:35

标签: jquery yii2

分享解决方案我现在正在使用: 向控制器发出ajax请求并使用renderAjax附加视图文件。 同意你使用Yii方式初始化datepicker @ Muhammad Omer Aslam

我试图解决这个问题,但仍然没有运气。 如果有人会建议,那将是很大的帮助。 我在yii2中添加了文本字段并初始化了datepicker。 我可以看到hasDatepicker类输入字段但我看不到datepicker。 请看看

这是javascript代码:

 $('#all_upcoming_audit_tr_container').on('focus','.upcoming_audit_date',function(){
              var id = $(this).attr('id');
              $("#"+id).datepicker();
        });

这是检查元素代码:

<input id="upcoming_audit_start_date_74449" class="form-control upcoming_audit_date hasDatepicker" name="ManagersChecklistWeekly[any_upcoming_audits_text][74449][start_date]" type="text"> 

2 个答案:

答案 0 :(得分:0)

检查这是否有帮助:

$(document).on('focus','.upcoming_audit_date',function(){
        $(this).datepicker();
});

答案 1 :(得分:0)

我建议您使用Yii方式初始化datepicker,这样您就不必担心手动调用javascript或加载js源,让Yii完成剩下的工作。

如果您使用

,可以使用以下方法

<强> With Model & without ActiveForm*

echo DatePicker::widget([
    'model' => $model,
    'attribute' => 'from_date',
    //'language' => 'ru',
    //'dateFormat' => 'yyyy-MM-dd',
]);

<强> Without Model & ActiveForm

echo DatePicker::widget([
    'name'  => 'from_date',
    'value'  => $value,
    //'language' => 'ru',
    //'dateFormat' => 'yyyy-MM-dd',
]);

或者

<强> With Model & ActiveForm

<?= $form->field($model, 'from_date')->widget(\yii\jui\DatePicker::className(), [
    //'language' => 'ru',
    //'dateFormat' => 'yyyy-MM-dd',
]) ?>

修改

根据讨论,您正尝试动态初始化datepicker 通过javascript所以这里是初始化输入字段焦点上的datepicker的演示

$('#all_upcoming_audit_tr_container').on('focus', '.upcoming_audit_date', function() {
  $(this).datepicker();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

<div id="all_upcoming_audit_tr_container">
  <input type="text" name="datepicker" id="datepicker" class="upcoming_audit_date" />
</div>

只需确保包含所有库并且jquery不包含两次,否则您的脚本就可以了。查看控制台是否存在与jquery的双重包含相关的任何错误。