结束日期应大于Yii Bootstrap datepickerRow中的开始日期

时间:2014-09-23 06:19:45

标签: javascript php jquery twitter-bootstrap yii

我正在使用Yii bootstraps datepickerRow:Check this

我希望我的end_date取决于start_date。即end_date应大于开始日期。我花了几个小时在谷歌上检查是否有任何内置的解决方案,但没有找到任何解决方案。然后在我写了我自己的js代码后,我认为它完全没问题,但它不起作用。

我已经用 Cjuidatepicker 实现了这个目标,并且它的蓬勃发展。

Check my working code for yii cjuidatepicker

但我不知道为什么它不能用于yii bootstrap datepickerRow。

任何帮助都将不胜感激。

以下是我的代码:

<?php
echo $form->datepickerRow(
        $identitycard, 'date_of_issue', array(
    'onChange' => 'setEndDate("passport_date_of_expiry", this)',
    'class' => "input-small",
    'labelOptions' => array('label' => 'Date of Issue <span class="required">*</span>'),
    'value' => $passportArr['date_of_issue'],
    'name' => 'passport[date_of_issue]',
    'readonly' => true,
    'options' => array(
        'autoclose' => true,
        'showAnim' => 'fold',
        'format' => 'yyyy-mm-dd',
        'endDate' => '-infinity'
    ),
    'prepend' => '<i class="icon icon-calendar"></i>',
    'hint' => 'yyyy-mm-dd'
        )
);
echo $form->datepickerRow(
        $identitycard, 'date_of_expiry', array(
    'class' => "input-small",
    'labelOptions' => array('label' => 'Date of Expiry <span class="required">*</span>'),
    'value' => $passportArr['date_of_expiry'],
    'name' => 'passport[date_of_expiry]',
    'readonly' => true,
    'options' => array(
        'autoclose' => true,
        'showAnim' => 'fold',
        'format' => 'yyyy-mm-dd',
    ),
    'prepend' => '<i class="icon icon-calendar"></i>',
    'hint' => 'yyyy-mm-dd'
        )
);
?>

// JS代码

function setEndDate(id, date) {
    var selectedDate = $(date).val();
    $("#" + id).datepicker({
        startDate: selectedDate,
        format: "yyyy-mm-dd"
    });
}

1 个答案:

答案 0 :(得分:1)

在你的js函数setEndDate中,第二个参数date不是jQuery元素(在datepickerRow中的参数中为this)。它不能用jQuery选择器读取。

在您的函数setEndDate中,您可以将输入值改为date.value;而不是$(date).val();

编辑:

setEndDate函数应该可以使用yiibooster源代码中的相关更改refer to plugin docs,例如在我的yii-booster安装中:protected / components / bootstrap / assets / bootstrap-datetimepicker / js / bootstrap-datetimepicker.js):

function setEndDate(id, date) {
    $("#" + id).val(date.value);
    $("#" + id).datepicker('setStartDate' , date.value);
}